home *** CD-ROM | disk | FTP | other *** search
Wrap
Text File | 1998-10-28 | 228.7 KB | 6,865 lines
PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) NNNNAAAAMMMMEEEE perltoc - perl documentation table of contents DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN This page provides a brief table of contents for the rest of the Perl documentation set. It is meant to be scanned quickly or grepped through to locate the proper section you're looking for. BBBBAAAASSSSIIIICCCC DDDDOOOOCCCCUUUUMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN ppppeeeerrrrllll ---- PPPPrrrraaaaccccttttiiiiccccaaaallll EEEExxxxttttrrrraaaaccccttttiiiioooonnnn aaaannnndddd RRRReeeeppppoooorrrrtttt LLLLaaaannnngggguuuuaaaaggggeeee SYNOPSIS DESCRIPTION Many usability enhancements, Simplified grammar, Lexical scoping, Arbitrarily nested data structures, Modularity and reusability, Object-oriented programming, Embeddable and Extensible, POSIX compliant, Package constructors and destructors, Multiple simultaneous DBM implementations, Subroutine definitions may now be autoloaded, Regular expression enhancements, Innumerable Unbundled Modules, Compilability ENVIRONMENT AUTHOR FILES SEE ALSO DIAGNOSTICS BUGS NOTES ppppeeeerrrrllllffffaaaaqqqq ---- ffffrrrreeeeqqqquuuueeeennnnttttllllyyyy aaaasssskkkkeeeedddd qqqquuuueeeessssttttiiiioooonnnnssss aaaabbbboooouuuutttt PPPPeeeerrrrllll (((($$$$DDDDaaaatttteeee:::: 1111999999998888////00007777////22220000 22223333::::11112222::::11117777 $$$$)))) DESCRIPTION perlfaq: Structural overview of the FAQ, the _p_e_r_l_f_a_q_1 manpage: General Questions About Perl, the _p_e_r_l_f_a_q_2 manpage: Obtaining and Learning about Perl, the _p_e_r_l_f_a_q_3 manpage: Programming Tools, the _p_e_r_l_f_a_q_4 manpage: Data Manipulation, the _p_e_r_l_f_a_q_5 manpage: Files and Formats, the _p_e_r_l_f_a_q_6 manpage: Regexps, the _p_e_r_l_f_a_q_7 manpage: General Perl Language Issues, the _p_e_r_l_f_a_q_8 manpage: System Interaction, the _p_e_r_l_f_a_q_9 manpage: Networking Page 1 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Where to get this document How to contribute to this document the authors What will happen if you mail your Perl programming problems to Credits Author and Copyright Information Bundled Distributions Disclaimer Changes 24/April/97, 23/April/97, 25/March/97, 18/March/97, 17/March/97 Version, Initial Release: 11/March/97 ppppeeeerrrrllllffffaaaaqqqq1111 ---- GGGGeeeennnneeeerrrraaaallll QQQQuuuueeeessssttttiiiioooonnnnssss AAAAbbbboooouuuutttt PPPPeeeerrrrllll (((($$$$RRRReeeevvvviiiissssiiiioooonnnn:::: 1111....11114444 $$$$,,,, $$$$DDDDaaaatttteeee:::: 1998/06/14 22:15:25 $) DESCRIPTION What is Perl? Who supports Perl? Who develops it? Why is it free? Which version of Perl should I use? What are perl4 and perl5? How stable is Perl? Is Perl difficult to learn? REXX, Scheme, or Tcl? How does Perl compare with other languages like Java, Python, Can I do [task] in Perl? When shouldn't I program in Perl? What's the difference between "perl" and "Perl"? Is it a Perl program or a Perl script? What is a JAPH? Where can I get a list of Larry Wall witticisms? Page 2 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) version (5/5.004/Perl instead of some other language)? How can I convince my sysadmin/supervisor/employees to use AUTHOR AND COPYRIGHT ppppeeeerrrrllllffffaaaaqqqq2222 ---- OOOObbbbttttaaaaiiiinnnniiiinnnngggg aaaannnndddd LLLLeeeeaaaarrrrnnnniiiinnnngggg aaaabbbboooouuuutttt PPPPeeeerrrrllll (((($$$$RRRReeeevvvviiiissssiiiioooonnnn:::: 1111....22224444 $$$$,,,, $$$$DDDDaaaatttteeee:::: 1998/07/20 23:40:28 $) DESCRIPTION What machines support Perl? Where do I get it? How can I get a binary version of Perl? I don't have a C compiler on my system. How can I compile perl? don't work. I copied the Perl binary from one machine to another, but scripts loading/malloc/linking/... failed. How do I make it work? I grabbed the sources and tried to compile but gdbm/dynamic CPAN? What does CPAN/src/... mean? What modules and extensions are available for Perl? What is Is there an ISO or ANSI certified version of Perl? Where can I get information on Perl? questions? What are the Perl newsgroups on USENET? Where do I post Where should I post source code? Perl Books References, Tutorials *Learning Perl [2nd edition] by Randal L. Schwartz and Tom Christiansen, Task-Oriented, Special Topics Perl in Magazines Perl on the Net: FTP and WWW Access What mailing lists are there for perl? MacPerl, Perl5-Porters, NTPerl, Perl-Packrats Archives of comp.lang.perl.misc Where can I buy a commercial version of Perl? Where do I send bug reports? Page 3 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) What is perl.com? perl.org? The Perl Institute? How do I learn about object-oriented Perl programming? AUTHOR AND COPYRIGHT ppppeeeerrrrllllffffaaaaqqqq3333 ---- PPPPrrrrooooggggrrrraaaammmmmmmmiiiinnnngggg TTTToooooooollllssss (((($$$$RRRReeeevvvviiiissssiiiioooonnnn:::: 1111....22228888 $$$$,,,, $$$$DDDDaaaatttteeee:::: 1998/07/16 22:08:49 $) DESCRIPTION How do I do (anything)? How can I use Perl interactively? Is there a Perl shell? How do I debug my Perl programs? How do I profile my Perl programs? How do I cross-reference my Perl programs? Is there a pretty-printer (formatter) for Perl? Is there a ctags for Perl? Where can I get Perl macros for vi? Where can I get perl-mode for emacs? How can I use curses with Perl? How can I use X or Tk with Perl? How can I generate simple menus without using CGI or Tk? What is undump? How can I make my Perl program run faster? How can I make my Perl program take less memory? Is it unsafe to return a pointer to local data? How can I free an array or hash so my program shrinks? How can I make my CGI script more efficient? How can I hide the source for my Perl program? Page 4 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) How can I compile my Perl program into byte code or C? How can I get #!perl to work on [MS-DOS,NT,...]? Can I write useful perl programs on the command line? Why don't perl one-liners work on my DOS/Mac/VMS system? Where can I learn about CGI or Web programming in Perl? Where can I learn about object-oriented Perl programming? Where can I learn about linking C with Perl? [h2xs, xsubpp] C program, what am I doing wrong? I've read perlembed, perlguts, etc., but I can't embed perl in my mean? When I tried to run my script, I got this message. What does it What's MakeMaker? AUTHOR AND COPYRIGHT ppppeeeerrrrllllffffaaaaqqqq4444 ---- DDDDaaaattttaaaa MMMMaaaannnniiiippppuuuullllaaaattttiiiioooonnnn (((($$$$RRRReeeevvvviiiissssiiiioooonnnn:::: 1111....22225555 $$$$,,,, $$$$DDDDaaaatttteeee:::: 1998/07/16 22:49:55 $) DESCRIPTION Data: Numbers the numbers I should be getting (eg, 19.95)? Why am I getting long decimals (eg, 19.9499999999999) instead of Why isn't my octal data interpreted correctly? Trig functions? Does perl have a round function? What about ceil() and floor()? How do I convert bits into ints? How do I multiply matrices? How do I perform an operation on a series of integers? How can I output Roman numerals? Why aren't my random numbers random? Data: Dates Page 5 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) How do I find the week-of-the-year/day-of-the-year? How can I compare two dates and find the difference? How can I take a string and turn it into epoch seconds? How can I find the Julian Day? Does Perl have a year 2000 problem? Is Perl Y2K compliant? Data: Strings How do I validate input? How do I unescape a string? How do I remove consecutive pairs of characters? How do I expand function calls in a string? How do I find matching/nesting anything? How do I reverse a string? How do I expand tabs in a string? How do I reformat a paragraph? How can I access/change the first N letters of a string? How do I change the Nth occurrence of something? string? How can I count the number of occurrences of a substring within a How do I capitalize all the words on one line? [character]? (Comma-separated files) How can I split a [character] delimited string except when inside How do I strip blank space from the beginning/end of a string? How do I extract selected columns from a string? How do I find the soundex value of a string? How can I expand variables in text strings? What's wrong with always quoting "$vars"? Why don't my <<HERE documents work? 1. There must be no space after the << part, 2. There Page 6 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) (probably) should be a semicolon at the end, 3. You can't (easily) have any space in front of the tag Data: Arrays What is the difference between $array[1] and @array[1]? How can I extract just the unique elements of an array? a) If @in is sorted, and you want @out to be _s_o_r_t_e_d:(this assumes all true values in the array), b) If you don't know whether @in is sorted:, c) Like (b), but @in contains only small integers:, d) A way to do (b) without any loops or greps:, e) Like (d), but @in contains only small positive integers: element? How can I tell whether a list or array contains a certain the intersection of two arrays? How do I compute the difference of two arrays? How do I compute true? How do I find the first array element for which a condition is How do I handle linked lists? How do I handle circular lists? How do I shuffle an array randomly? How do I process/modify each element of an array? How do I select a random element from an array? How do I permute N elements of a list? How do I sort an array by (anything)? How do I manipulate arrays of bits? Why does defined() return true on empty arrays and hashes? Data: Hashes (Associative Arrays) How do I process an entire hash? over it? What happens if I add or remove keys from a hash while iterating How do I look up a hash element by value? Page 7 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) How can I know how many entries are in a hash? How do I sort a hash (optionally by value instead of key)? How can I always keep my hash sorted? What's the difference between "delete" and "undef" with hashes? Why don't my tied hashes make the defined/exists distinction? How do I reset an each() operation part-way through? How can I get the unique keys from two hashes? How can I store a multidimensional array in a DBM file? How can I make my hash remember the order I put elements into it? create it? Why does passing a subroutine an undefined element in a hash class/hash or array of hashes or arrays? How can I make the Perl equivalent of a C structure/C++ How can I use a reference as a hash key? Data: Misc How do I handle binary data correctly? number/whole/integer/float? How do I determine whether a scalar is a How do I keep persistent data across program calls? How do I print out or copy a recursive data structure? How do I define methods for every class/object? How do I verify a credit card checksum? AUTHOR AND COPYRIGHT ppppeeeerrrrllllffffaaaaqqqq5555 ---- FFFFiiiilllleeeessss aaaannnndddd FFFFoooorrrrmmmmaaaattttssss (((($$$$RRRReeeevvvviiiissssiiiioooonnnn:::: 1111....22224444 $$$$,,,, $$$$DDDDaaaatttteeee:::: 1998/07/05 15:07:20 $) DESCRIPTION this? How do I flush/unbuffer an output filehandle? Why must I do Page 8 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) a line in the middle of a file/append to the beginning of a file? How do I change one line in a file/delete a line in a file/insert How do I count the number of lines in a file? How do I make a temporary file name? How can I manipulate fixed-record-length files? filehandles between subroutines? How do I make an array of filehandles? How can I make a filehandle local to a subroutine? How do I pass How can I use a filehandle indirectly? How can I set up a footer format to be used with write()? How can I write() into a string? How can I output my numbers with commas added? How can I translate tildes (~) in a filename? How come when I open a file read-write it wipes it out? <*>? Why do I sometimes get an "Argument list too long" when I use Is there a leak/bug in glob()? How can I open a file with a leading ">" or trailing blanks? How can I reliably rename a file? How can I lock a file? What can't I just open(FH, ">file.lock in the file. How can I do this? I still don't get locking. I just want to increment the number How do I randomly update a binary file? How do I get a file's timestamp in perl? How do I set a file's timestamp in perl? How do I print to more than one file at once? How can I read in a file by paragraphs? Page 9 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) keyboard? How can I read a single character from a file? From the How can I tell if there's a character waiting on a filehandle? How do I do a tail -f in perl? How do I dup() a filehandle in Perl? How do I close a file descriptor by number? `C:\temp\foo.exe` work? Why can't I use "C:\temp\foo" in DOS paths? What doesn't Why doesn't glob'*.*' get all the files? protected files? Isn't this a bug in Perl? Why does Perl let me delete read-only files? Why does - i clobber How do I select a random line from a file? AUTHOR AND COPYRIGHT ppppeeeerrrrllllffffaaaaqqqq6666 ---- RRRReeeeggggeeeexxxxppppssss (((($$$$RRRReeeevvvviiiissssiiiioooonnnn:::: 1111....22222222 $$$$,,,, $$$$DDDDaaaatttteeee:::: 1998/07/16 14:01:07 $) DESCRIPTION illegible and unmaintainable code? How can I hope to use regular expressions without creating Comments Outside the Regexp, Comments Inside the Regexp, Different Delimiters wrong? I'm having trouble matching over more than one line. What's on different lines? How can I pull out lines between two patterns that are themselves wrong? I put a regular expression into $/ but it didn't work. What's case on the RHS? How do I substitute case insensitively on the LHS, but preserving How can I make \w match national character sets? How can I match a locale-smart version of /[a-zA-Z]/? How can I quote a variable to use in a regexp? Page 10 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) What is /o really for? a file? How do I use a regular expression to strip C style comments from Can I use Perl regular expressions to match balanced text? it? What does it mean that regexps are greedy? How can I get around How do I process each word on each line? How can I print out a word-frequency or line- frequency summary? How can I do approximate matching? How do I efficiently match many regular expressions at once? Why don't word-boundary searches with \b work for me? Why does using $&, $`, or $' slow my program down? What good is \G in a regular expression? Are Perl regexps DFAs or NFAs? Are they POSIX compliant? What's wrong with using grep or map in a void context? How can I match strings with multibyte characters? AUTHOR AND COPYRIGHT ppppeeeerrrrllllffffaaaaqqqq7777 ---- PPPPeeeerrrrllll LLLLaaaannnngggguuuuaaaaggggeeee IIIIssssssssuuuueeeessss (((($$$$RRRReeeevvvviiiissssiiiioooonnnn:::: 1111....22221111 $$$$,,,, $$$$DDDDaaaatttteeee:::: 1998/06/22 15:20:07 $) DESCRIPTION Can I get a BNF/yacc/RE for the Perl language? to use them? What are all these $@%* punctuation signs, and how do I know when commas? Do I always/never have to quote my strings or use semicolons and How do I skip some return values? How do I temporarily block warnings? What's an extension? Page 11 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Why do Perl operators have different precedence than C operators? How do I declare/create a structure? How do I create a module? How do I create a class? How can I tell if a variable is tainted? What's a closure? What is variable suicide and how can I prevent it? Method, Regexp}? How can I pass/return a {Function, FileHandle, Array, Hash, Passing Variables and Functions, Passing Filehandles, Passing Regexps, Passing Methods How do I create a static variable? scoping? Between local() and my()? What's the difference between dynamic and lexical (static) lexical is in scope? How can I access a dynamic variable while a similarly named What's the difference between deep and shallow binding? Why doesn't "my($foo) = <FILE>;" work right? How do I redefine a builtin function, operator, or method? foo()? What's the difference between calling a function as &foo and How do I create a switch or case statement? variables/functions/methods? How can I catch accesses to undefined Why can't a method included in this same file be found? How can I find out my current package? How can I comment out a large block of perl code? AUTHOR AND COPYRIGHT Page 12 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) ppppeeeerrrrllllffffaaaaqqqq8888 ---- SSSSyyyysssstttteeeemmmm IIIInnnntttteeeerrrraaaaccccttttiiiioooonnnn (((($$$$RRRReeeevvvviiiissssiiiioooonnnn:::: 1111....22225555 $$$$,,,, $$$$DDDDaaaatttteeee:::: 1998/07/05 15:07:20 $) DESCRIPTION How do I find out which operating system I'm running under? How come exec() doesn't return? How do I do fancy stuff with the keyboard/screen/mouse? Keyboard, Screen, Mouse How do I print something out in color? How do I read just one key without waiting for a return key? How do I check whether input is ready on the keyboard? How do I clear the screen? How do I get the screen size? How do I ask the user for a password? How do I read and write the serial port? lockfiles, open mode, end of line, flushing output, non-blocking input How do I decode encrypted password files? How do I start a process in the background? STDIN, STDOUT, and STDERR are shared, Signals, Zombies How do I trap control characters/signals? How do I modify the shadow password file on a Unix system? How do I set the time and date? How can I sleep() or alarm() for under a second? How can I measure time under a second? handling) How can I do an atexit() or setjmp()/longjmp()? (Exception What does the error message "Protocol not supported" mean? Why doesn't my sockets program work under System V (Solaris)? How can I call my system's unique C functions from Perl? Page 13 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Where do I get the include files to do ioctl() or syscall()? Why do setuid perl scripts complain about kernel problems? How can I open a pipe both to and from a command? Why can't I get the output of a command with system()? How can I capture STDERR from an external command? Why doesn't open() return an error when a pipe open fails? What's wrong with using backticks in a void context? How can I call backticks without shell processing? Unix, ^Z on MS-DOS)? Why can't my script read from STDIN after I gave it EOF (^D on How can I convert my shell script to perl? Can I use perl to run a telnet or ftp session? How can I write expect in Perl? "ps"? Is there a way to hide perl's command line from programs such as script. How come the change disappeared when I exited the script? How do I get my changes to be visible? I {changed directory, modified my environment} in a perl Unix complete? How do I close a process's filehandle without waiting for it to How do I fork a daemon process? How do I make my program run with sh and csh? How do I find out if I'm running interactively or not? How do I timeout a slow event? How do I set CPU limits? How do I avoid zombies on a Unix system? How do I use an SQL database? How do I make a system() exit on control-C? Page 14 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) How do I open a file without blocking? How do I install a CPAN module? What's the difference between require and use? How do I keep my own module/library directory? module/library search path? How do I add the directory my program lives in to the How do I add a directory to my include path at runtime? AUTHOR AND COPYRIGHT ppppeeeerrrrllllffffaaaaqqqq9999 ---- NNNNeeeettttwwwwoooorrrrkkkkiiiinnnngggg (((($$$$RRRReeeevvvviiiissssiiiioooonnnn:::: 1111....22220000 $$$$,,,, $$$$DDDDaaaatttteeee:::: 1998/06/22 18:31:09 $) DESCRIPTION (500 Server Error) My CGI script runs from the command line but not the browser. How can I get better error messages from a CGI program? How do I remove HTML from a string? How do I extract URLs? a file on another machine? How do I download a file from the user's machine? How do I open How do I make a pop-up menu in HTML? How do I fetch an HTML file? How do I automate an HTML form submission? How do I decode or create those %-encodings on the web? How do I redirect to another page? How do I put a password on my web pages? How do I edit my .htpasswd and .htgroup files with Perl? cause my CGI script to do bad things? How do I make sure users can't enter values into a form that How do I parse a mail header? Page 15 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) How do I decode a CGI form? How do I check a valid mail address? How do I decode a MIME/BASE64 string? How do I return the user's mail address? How do I send mail? How do I read mail? How do I find out my hostname/domainname/IP address? How do I fetch a news article or the active newsgroups? How do I fetch/put an FTP file? How can I do RPC in Perl? AUTHOR AND COPYRIGHT ppppeeeerrrrllllddddeeeellllttttaaaa ---- wwwwhhhhaaaatttt''''ssss nnnneeeewwww ffffoooorrrr ppppeeeerrrrllll5555....000000005555 DESCRIPTION About the new versioning system Incompatible Changes WARNING: This version is not binary compatible with Perl 5.004. Default installation structure has changed Perl Source Compatibility C Source Compatibility Core sources now require ANSI C compiler, All Perl global variables must now be referenced with an explicit prefix, Enabling threads has source compatibility issues Binary Compatibility Security fixes may affect compatibility Relaxed new mandatory warnings introduced in 5.004 Licensing Core Changes Page 16 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Threads Compiler Regular Expressions Many new and improved optimizations, Many bug fixes, New regular expression constructs, New operator for precompiled regular expressions, Other improvements, Incompatible changes Improved malloc() Quicksort is internally implemented Reliable signals Reliable stack pointers More generous treatment of carriage returns Memory leaks Better support for multiple interpreters defined Behavior of local() on array and hash elements is now well- %! is transparently tied to the the _E_r_r_n_o manpage module Pseudo-hashes are supported EXPR foreach EXPR is supported Keywords can be globally overridden $^E is meaningful on Win32 foreach (1..1000000) optimized Foo:: can be used as implicitly quoted package name exists $Foo::{Bar::} tests existence of a package Better locale support Experimental support for 64-bit platforms prototype() returns useful results on builtins Extended support for exception handling Page 17 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Re- blessing in DESTROY() supported for chaining DESTROY() methods All printf format conversions are handled internally New INIT keyword New lock keyword New qr// operator our is now a reserved word Tied arrays are now fully supported Tied handles support is better 4th argument to substr Negative LENGTH argument to splice Magic lvalues are now more magical <> now reads in records Supported Platforms New Platforms Changes in existing support Modules and Pragmata New Modules B, Data::Dumper, Errno, File::Spec, ExtUtils::Installed, ExtUtils::Packlist, Fatal, IPC::SysV, Test, Tie::Array, Tie::Handle, Thread, attrs, fields, re Changes in existing modules CGI, POSIX, DB_File, MakeMaker, CPAN, Cwd, Benchmark Utility Changes Documentation Changes New Diagnostics Ambiguous call resolved as CORE::%_s(), qualify as such or use &, Bad index while coercing array into hash, Bareword "%s" refers to nonexistent package, Can't call method "%s" on an undefined value, Can't coerce array into hash, Can't goto subroutine from an eval-string, Can't localize pseudo- Page 18 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) hash element, Can't use %%! because Errno.pm is not available, Cannot find an opnumber for "%s", Character class syntax [. .] is reserved for future extensions, Character class syntax [: :] is reserved for future extensions, Character class syntax [= =] is reserved for future extensions, %s: Eval-group in insecure regular expression, %s: Eval-group not allowed, use re 'eval', %s: Eval-group not allowed at run time, Explicit blessing to '' (assuming package main), Illegal hex digit ignored, No such array field, No such field "%s" in variable %s of type %s, Out of memory during ridiculously large request, Range iterator outside integer range, Recursive inheritance detected while looking for method '%s' in package '%s', Reference found where even-sized list expected, Undefined value assigned to typeglob, Use of reserved word "%s" is deprecated, perl: warning: Setting locale failed Obsolete Diagnostics Can't _m_k_t_e_m_p(), Can't write to temp file for ----eeee: %s, Cannot open temporary file BUGS SEE ALSO HISTORY ppppeeeerrrrllllddddaaaattttaaaa ---- PPPPeeeerrrrllll ddddaaaattttaaaa ttttyyyyppppeeeessss DESCRIPTION Variable names Context Scalar values Scalar value constructors List value constructors Typeglobs and Filehandles ppppeeeerrrrllllssssyyyynnnn ---- PPPPeeeerrrrllll ssssyyyynnnnttttaaaaxxxx DESCRIPTION Declarations Simple statements Page 19 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Compound statements Loop Control For Loops Foreach Loops Basic BLOCKs and Switch Statements Goto PODs: Embedded Documentation Plain Old Comments (Not!) ppppeeeerrrrlllloooopppp ---- PPPPeeeerrrrllll ooooppppeeeerrrraaaattttoooorrrrssss aaaannnndddd pppprrrreeeecccceeeeddddeeeennnncccceeee SYNOPSIS DESCRIPTION Terms and List Operators (Leftward) The Arrow Operator Auto-increment and Auto-decrement Exponentiation Symbolic Unary Operators Binding Operators Multiplicative Operators Additive Operators Shift Operators Named Unary Operators Relational Operators Equality Operators Bitwise And Bitwise Or and Exclusive Or C-style Logical And Page 20 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) C-style Logical Or Range Operators Conditional Operator Assignment Operators Comma Operator List Operators (Rightward) Logical Not Logical And Logical or and Exclusive Or C Operators Missing From Perl unary &, unary *, (TYPE) Quote and Quote-like Operators Regexp Quote-Like Operators ?PATTERN?, m/PATTERN/cgimosx, /PATTERN/cgimosx, q/STRING/, 'STRING', qq/STRING/, "STRING", qr/STRING/imosx, qx/STRING/, `STRING`, qw/STRING/, s/PATTERN/REPLACEMENT/egimosx, tr/SEARCHLIST/REPLACEMENTLIST/cds, y/SEARCHLIST/REPLACEMENTLIST/cds Gory details of parsing quoted constructs Finding the end, Removal of backslashes before delimiters, Interpolation, <<'EOF', m'', s''', tr///, y///, '', q//, "", ``, qq//, qx//, <file*glob>, ?RE?, /RE/, m/RE/, s/RE/foo/,, Interpolation of regular expressions, Optimization of regular expressions I/O Operators Constant Folding Bitwise String Operators Integer Arithmetic Floating-point Arithmetic Bigger Numbers Page 21 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) ppppeeeerrrrllllrrrreeee ---- PPPPeeeerrrrllll rrrreeeegggguuuullllaaaarrrr eeeexxxxpppprrrreeeessssssssiiiioooonnnnssss DESCRIPTION i, m, s, x Regular Expressions (?#text), (?:pattern), (?imsx-imsx:pattern), (?=pattern), (?!pattern), (?<=pattern), (?<!pattern), (?{ code }), (?>pattern), (?(condition)yes-pattern|no- pattern), (?(condition)yes-pattern), (?imsx-imsx) Backtracking Version 8 Regular Expressions WARNING on \1 vs $1 Repeated patterns matching zero-length substring Creating custom RE engines SEE ALSO ppppeeeerrrrllllrrrruuuunnnn ---- hhhhoooowwww ttttoooo eeeexxxxeeeeccccuuuutttteeee tttthhhheeee PPPPeeeerrrrllll iiiinnnntttteeeerrrrpppprrrreeeetttteeeerrrr SYNOPSIS DESCRIPTION #! and quoting on non-Unix systems OS/2, MS-DOS, Win95/NT, Macintosh Location of Perl Switches ----0000[_d_i_g_i_t_s], ----aaaa, ----cccc, ----dddd, ----dddd::::_f_o_o, ----DDDD_l_e_t_t_e_r_s, ----DDDD_n_u_m_b_e_r, ----eeee _c_o_m_m_a_n_d_l_i_n_e, ----FFFF_p_a_t_t_e_r_n, ----hhhh, ----iiii[_e_x_t_e_n_s_i_o_n], ----IIII_d_i_r_e_c_t_o_r_y, ----llll[_o_c_t_n_u_m], ----mmmm[----]_m_o_d_u_l_e, ----MMMM[----]_m_o_d_u_l_e, ----MMMM[----]'_m_o_d_u_l_e ...', ----[[[[mmmmMMMM]]]][----]_m_o_d_u_l_e=_a_r_g[,_a_r_g]..., ----nnnn, ----pppp, ----PPPP, ----ssss, ----SSSS, ----TTTT, ----uuuu, ----UUUU, ----vvvv, ----VVVV, ----VVVV::::_n_a_m_e, ----wwww, ----xxxx _d_i_r_e_c_t_o_r_y ENVIRONMENT HOME, LOGDIR, PATH, PERL5LIB, PERL5OPT, PERLLIB, PERL5DB, PERL5SHELL (specific to WIN32 port), PERL_DEBUG_MSTATS, PERL_DESTRUCT_LEVEL ppppeeeerrrrllllffffuuuunnnncccc ---- PPPPeeeerrrrllll bbbbuuuuiiiillllttttiiiinnnn ffffuuuunnnnccccttttiiiioooonnnnssss DESCRIPTION Perl Functions by Category Functions for SCALARs or strings, Regular expressions Page 22 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) and pattern matching, Numeric functions, Functions for real @ARRAYs, Functions for list data, Functions for real %HASHes, Input and output functions, Functions for fixed length data or records, Functions for filehandles, files, or directories, Keywords related to the control flow of your perl program, Keywords related to scoping, Miscellaneous functions, Functions for processes and process groups, Keywords related to perl modules, Keywords related to classes and object- orientedness, Low-level socket functions, System V interprocess communication functions, Fetching user and group info, Fetching network info, Time-related functions, Functions new in perl5, Functions obsoleted in perl5 Alphabetical Listing of Perl Functions -_X FILEHANDLE, -_X EXPR, -_X, abs VALUE, abs, accept NEWSOCKET,GENERICSOCKET, alarm SECONDS, alarm, atan2 Y,X, bind SOCKET,NAME, binmode FILEHANDLE, bless REF,CLASSNAME, bless REF, caller EXPR, caller, chdir EXPR, chmod LIST, chomp VARIABLE, chomp LIST, chomp, chop VARIABLE, chop LIST, chop, chown LIST, chr NUMBER, chr, chroot FILENAME, chroot, close FILEHANDLE, close, closedir DIRHANDLE, connect SOCKET,NAME, continue BLOCK, cos EXPR, crypt PLAINTEXT,SALT, dbmclose HASH, dbmopen HASH,DBNAME,MODE, defined EXPR, defined, delete EXPR, die LIST, do BLOCK, do _S_U_B_R_O_U_T_I_N_E(LIST), do EXPR, dump LABEL, each HASH, eof FILEHANDLE, eof (), eof, eval EXPR, eval BLOCK, exec LIST, exec PROGRAM LIST, exists EXPR, exit EXPR, exp EXPR, exp, fcntl FILEHANDLE,FUNCTION,SCALAR, fileno FILEHANDLE, flock FILEHANDLE,OPERATION, fork, format, formline PICTURE,LIST, getc FILEHANDLE, getc, getlogin, getpeername SOCKET, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam NAME, getgrnam NAME, gethostbyname NAME, getnetbyname NAME, getprotobyname NAME, getpwuid UID, getgrgid GID, getservbyname NAME,PROTO, gethostbyaddr ADDR,ADDRTYPE, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent, getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, endhostent, endnetent, endprotoent, endservent, getsockname SOCKET, getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, gmtime EXPR, goto LABEL, goto EXPR, goto &NAME, grep BLOCK LIST, grep EXPR,LIST, hex EXPR, hex, import, index STR,SUBSTR,POSITION, index STR,SUBSTR, int EXPR, int, ioctl FILEHANDLE,FUNCTION,SCALAR, join EXPR,LIST, keys HASH, kill LIST, last LABEL, last, lc EXPR, lc, lcfirst EXPR, lcfirst, length EXPR, length, link OLDFILE,NEWFILE, listen SOCKET,QUEUESIZE, local EXPR, Page 23 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) localtime EXPR, log EXPR, log, lstat FILEHANDLE, lstat EXPR, lstat, m//, map BLOCK LIST, map EXPR,LIST, mkdir FILENAME,MODE, msgctl ID,CMD,ARG, msgget KEY,FLAGS, msgsnd ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, my EXPR, next LABEL, next, no Module LIST, oct EXPR, oct, open FILEHANDLE,EXPR, open FILEHANDLE, opendir DIRHANDLE,EXPR, ord EXPR, ord, pack TEMPLATE,LIST, package, package NAMESPACE, pipe READHANDLE,WRITEHANDLE, pop ARRAY, pop, pos SCALAR, pos, print FILEHANDLE LIST, print LIST, print, printf FILEHANDLE FORMAT, LIST, printf FORMAT, LIST, prototype FUNCTION, push ARRAY,LIST, q/STRING/, qq/STRING/, qr/STRING/, qx/STRING/, qw/STRING/, quotemeta EXPR, quotemeta, rand EXPR, rand, read FILEHANDLE,SCALAR,LENGTH,OFFSET, read FILEHANDLE,SCALAR,LENGTH, readdir DIRHANDLE, readline EXPR, readlink EXPR, readlink, readpipe EXPR, recv SOCKET,SCALAR,LEN,FLAGS, redo LABEL, redo, ref EXPR, ref, rename OLDNAME,NEWNAME, require EXPR, require, reset EXPR, reset, return EXPR, return, reverse LIST, rewinddir DIRHANDLE, rindex STR,SUBSTR,POSITION, rindex STR,SUBSTR, rmdir FILENAME, rmdir, s///, scalar EXPR, seek FILEHANDLE,POSITION,WHENCE, seekdir DIRHANDLE,POS, select FILEHANDLE, select, select RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget KEY,NSEMS,FLAGS, semop KEY,OPSTRING, send SOCKET,MSG,FLAGS,TO, send SOCKET,MSG,FLAGS, setpgrp PID,PGRP, setpriority WHICH,WHO,PRIORITY, setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL, shift ARRAY, shift, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, shmread ID,VAR,POS,SIZE, shmwrite ID,STRING,POS,SIZE, shutdown SOCKET,HOW, sin EXPR, sin, sleep EXPR, sleep, socket SOCKET,DOMAIN,TYPE,PROTOCOL, socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, sort SUBNAME LIST, sort BLOCK LIST, sort LIST, splice ARRAY,OFFSET,LENGTH,LIST, splice ARRAY,OFFSET,LENGTH, splice ARRAY,OFFSET, split /PATTERN/,EXPR,LIMIT, split /PATTERN/,EXPR, split /PATTERN/, split, sprintf FORMAT, LIST, sqrt EXPR, sqrt, srand EXPR, srand, stat FILEHANDLE, stat EXPR, stat, study SCALAR, study, sub BLOCK, sub NAME, sub NAME BLOCK, substr EXPR,OFFSET,LEN,REPLACEMENT, substr EXPR,OFFSET,LEN, substr EXPR,OFFSET, symlink OLDFILE,NEWFILE, syscall LIST, sysopen FILEHANDLE,FILENAME,MODE, sysopen FILEHANDLE,FILENAME,MODE,PERMS, sysread FILEHANDLE,SCALAR,LENGTH,OFFSET, sysread FILEHANDLE,SCALAR,LENGTH, sysseek FILEHANDLE,POSITION,WHENCE, system LIST, system PROGRAM LIST, syswrite FILEHANDLE,SCALAR,LENGTH,OFFSET, syswrite FILEHANDLE,SCALAR,LENGTH, tell FILEHANDLE, tell, telldir DIRHANDLE, tie VARIABLE,CLASSNAME,LIST, tied VARIABLE, time, times, tr///, truncate Page 24 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) FILEHANDLE,LENGTH, truncate EXPR,LENGTH, uc EXPR, uc, ucfirst EXPR, ucfirst, umask EXPR, umask, undef EXPR, undef, unlink LIST, unlink, unpack TEMPLATE,EXPR, untie VARIABLE, unshift ARRAY,LIST, use Module LIST, use Module, use Module VERSION LIST, use VERSION, utime LIST, values HASH, vec EXPR,OFFSET,BITS, wait, waitpid PID,FLAGS, wantarray, warn LIST, write FILEHANDLE, write EXPR, write, y/// ppppeeeerrrrllllvvvvaaaarrrr ---- PPPPeeeerrrrllll pppprrrreeeeddddeeeeffffiiiinnnneeeedddd vvvvaaaarrrriiiiaaaabbbblllleeeessss DESCRIPTION Predefined Names $ARG, $_, $<_d_i_g_i_t_s>, $MATCH, $&, $PREMATCH, $`, $POSTMATCH, $', $LAST_PAREN_MATCH, $+, $MULTILINE_MATCHING, $*, input_line_number HANDLE EXPR, $INPUT_LINE_NUMBER, $NR, $, input_record_separator HANDLE EXPR, $INPUT_RECORD_SEPARATOR, $RS, $/, autoflush HANDLE EXPR, $OUTPUT_AUTOFLUSH, $|, output_field_separator HANDLE EXPR, $OUTPUT_FIELD_SEPARATOR, $OFS, $,, output_record_separator HANDLE EXPR, $OUTPUT_RECORD_SEPARATOR, $ORS, $\, $LIST_SEPARATOR, $", $SUBSCRIPT_SEPARATOR, $SUBSEP, $;, $OFMT, $#, format_page_number HANDLE EXPR, $FORMAT_PAGE_NUMBER, $%, format_lines_per_page HANDLE EXPR, $FORMAT_LINES_PER_PAGE, $=, format_lines_left HANDLE EXPR, $FORMAT_LINES_LEFT, $-, format_name HANDLE EXPR, $FORMAT_NAME, $~, format_top_name HANDLE EXPR, $FORMAT_TOP_NAME, $^, format_line_break_characters HANDLE EXPR, $FORMAT_LINE_BREAK_CHARACTERS, $:, format_formfeed HANDLE EXPR, $FORMAT_FORMFEED, $^L, $ACCUMULATOR, $^A, $CHILD_ERROR, $?, $OS_ERROR, $ERRNO, $!, $EXTENDED_OS_ERROR, $^E, $EVAL_ERROR, $@, $PROCESS_ID, $PID, $$, $REAL_USER_ID, $UID, $<, $EFFECTIVE_USER_ID, $EUID, $>, $REAL_GROUP_ID, $GID, $(, $EFFECTIVE_GROUP_ID, $EGID, $), $PROGRAM_NAME, $0, $[, $PERL_VERSION, $], $DEBUGGING, $^D, $SYSTEM_FD_MAX, $^F, $^H, $INPLACE_EDIT, $^I, $^M, $OSNAME, $^O, $PERLDB, $^P, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, $^R, $^S, $BASETIME, $^T, $WARNING, $^W, $EXECUTABLE_NAME, $^X, $ARGV, @ARGV, @INC, @_, %INC, %ENV $ENV{expr}, %SIG $SIG{expr} Error Indicators ppppeeeerrrrllllssssuuuubbbb ---- PPPPeeeerrrrllll ssssuuuubbbbrrrroooouuuuttttiiiinnnneeeessss SYNOPSIS Page 25 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) DESCRIPTION Private Variables via my() Peristent Private Variables Temporary Values via local() Passing Symbol Table Entries (typeglobs) When to Still Use local() 1. You need to give a global variable a temporary value, especially $_, 2. You need to create a local file or directory handle or a local function, 3. You want to temporarily change just one element of an array or hash Pass by Reference Prototypes Constant Functions Overriding Builtin Functions Autoloading SEE ALSO ppppeeeerrrrllllmmmmoooodddd ---- PPPPeeeerrrrllll mmmmoooodddduuuulllleeeessss ((((ppppaaaacccckkkkaaaaggggeeeessss aaaannnndddd ssssyyyymmmmbbbboooollll ttttaaaabbbblllleeeessss)))) DESCRIPTION Packages Symbol Tables Package Constructors and Destructors Perl Classes Perl Modules SEE ALSO ppppeeeerrrrllllmmmmooooddddlllliiiibbbb ---- ccccoooonnnnssssttttrrrruuuuccccttttiiiinnnngggg nnnneeeewwww PPPPeeeerrrrllll mmmmoooodddduuuulllleeeessss aaaannnndddd ffffiiiinnnnddddiiiinnnngggg eeeexxxxiiiissssttttiiiinnnngggg oooonnnneeeessss DESCRIPTION THE PERL MODULE LIBRARY Page 26 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Pragmatic Modules use autouse MODULE => _q_w(sub1 sub2 sub3), blib, diagnostics, integer, less, lib, locale, ops, overload, re, sigtrap, strict, subs, vmsish, vars Standard Modules AnyDBM_File, AutoLoader, AutoSplit, Benchmark, CPAN, CPAN::FirstTime, CPAN::Nox, Carp, Class::Struct, Config, Cwd, DB_File, Devel::SelfStubber, DirHandle, DynaLoader, English, Env, Exporter, ExtUtils::Embed, ExtUtils::Install, ExtUtils::Liblist, ExtUtils::MM_OS2, ExtUtils::MM_Unix, ExtUtils::MM_VMS, ExtUtils::MakeMaker, ExtUtils::Manifest, ExtUtils::Mkbootstrap, ExtUtils::Mksymlists, ExtUtils::testlib, Fatal, Fcntl, File::Basename, File::CheckTree, File::Compare, File::Copy, File::Find, File::Path, File::stat, FileCache, FileHandle, FindBin, GDBM_File, Getopt::Long, Getopt::Std, I18N::Collate, IO, IO::File, IO::Handle, IO::Pipe, IO::Seekable, IO::Select, IO::Socket, IPC::Open2, IPC::Open3, Math::BigFloat, Math::BigInt, Math::Complex, Math::Trig, NDBM_File, Net::Ping, Net::hostent, Net::netent, Net::protoent, Net::servent, Opcode, Pod::Text, POSIX, SDBM_File, Safe, Search::Dict, SelectSaver, SelfLoader, Shell, Socket, Symbol, Sys::Hostname, Sys::Syslog, Term::Cap, Term::Complete, Term::ReadLine, Test::Harness, Text::Abbrev, Text::ParseWords, Text::Soundex, Text::Tabs, Text::Wrap, Tie::Hash, Tie::RefHash, Tie::Scalar, Tie::SubstrHash, Time::Local, Time::gmtime, Time::localtime, Time::tm, UNIVERSAL, User::grent, User::pwent Extension Modules CPAN Language Extensions and Documentation Tools, Development Support, Operating System Interfaces, Networking, Device Control (modems) and InterProcess Communication, Data Types and Data Type Utilities, Database Interfaces, User Interfaces, Interfaces to / Emulations of Other Programming Languages, File Names, File Systems and File Locking (see also File Handles), String Processing, Language Text Processing, Parsing, and Searching, Option, Argument, Parameter, and Configuration File Processing, Internationalization and Locale, Authentication, Security, and Encryption, World Wide Web, HTML, HTTP, CGI, MIME, Server and Daemon Utilities, Archiving and Compression, Images, Pixmap and Bitmap Manipulation, Drawing, and Graphing, Mail and Usenet News, Control Flow Utilities (callbacks and exceptions etc), File Handle and Input/Output Stream Utilities, Miscellaneous Modules, Africa, Asia, Page 27 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Australasia, Europe, North America, South America Modules: Creation, Use, and Abuse Guidelines for Module Creation Do similar modules already exist in some form?, Try to design the new module to be easy to extend and reuse, Some simple style guidelines, Select what to export, Select a name for the module, Have you got it right?, README and other Additional Files, A description of the module/package/extension etc, A copyright notice - see below, Prerequisites - what else you may need to have, How to build it - possible changes to Makefile.PL etc, How to install it, Recent changes in this release, especially incompatibilities, Changes / enhancements you plan to make in the future, Adding a Copyright Notice, Give the module a version/issue/release number, How to release and distribute a module, Take care when changing a released module Guidelines for Converting Perl 4 Library Scripts into Modules There is no requirement to convert anything, Consider the implications, Make the most of the opportunity, The pl2pm utility will get you started, Adds the standard Module prologue lines, Converts package specifiers from ' to ::, Converts _d_i_e(...) to _c_r_o_a_k(...), Several other minor changes Guidelines for Reusing Application Code Complete applications rarely belong in the Perl Module Library, Many applications contain some Perl code that could be reused, Break-out the reusable code into one or more separate module files, Take the opportunity to reconsider and redesign the interfaces, In some cases the 'application' can then be reduced to a small NOTE ppppeeeerrrrllllmmmmooooddddiiiinnnnssssttttaaaallllllll ---- IIIInnnnssssttttaaaalllllllliiiinnnngggg CCCCPPPPAAAANNNN MMMMoooodddduuuulllleeeessss DESCRIPTION PREAMBLE DDDDEEEECCCCOOOOMMMMPPPPRRRREEEESSSSSSSS the file, UUUUNNNNPPPPAAAACCCCKKKK the file into a directory, BBBBUUUUIIIILLLLDDDD the module (sometimes unnecessary), IIIINNNNSSSSTTTTAAAALLLLLLLL the module HEY AUTHOR Page 28 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) COPYRIGHT ppppeeeerrrrllllffffoooorrrrmmmm ---- PPPPeeeerrrrllll ffffoooorrrrmmmmaaaattttssss DESCRIPTION Format Variables NOTES Footers Accessing Formatting Internals WARNINGS ppppeeeerrrrllllllllooooccccaaaalllleeee ---- PPPPeeeerrrrllll llllooooccccaaaalllleeee hhhhaaaannnnddddlllliiiinnnngggg ((((iiiinnnntttteeeerrrrnnnnaaaattttiiiioooonnnnaaaalllliiiizzzzaaaattttiiiioooonnnn aaaannnndddd llllooooccccaaaalllliiiizzzzaaaattttiiiioooonnnn)))) DESCRIPTION PREPARING TO USE LOCALES USING LOCALES The use locale pragma The setlocale function Finding locales LOCALE PROBLEMS Temporarily fixing locale problems Permanently fixing locale problems Permanently fixing your locale configuration Permanently fixing system locale configuration The localeconv function LOCALE CATEGORIES Category LC_COLLATE: Collation Category LC_CTYPE: Character Types Category LC_NUMERIC: Numeric Formatting Page 29 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Category LC_MONETARY: Formatting of monetary amounts LC_TIME Other categories SECURITY CCCCoooommmmppppaaaarrrriiiissssoooonnnn ooooppppeeeerrrraaaattttoooorrrrssss (lt, le, ge, gt and cmp):, CCCCaaaasssseeee----mmmmaaaappppppppiiiinnnngggg iiiinnnntttteeeerrrrppppoooollllaaaattttiiiioooonnnn (with \l, \L, \u or \U), MMMMaaaattttcccchhhhiiiinnnngggg ooooppppeeeerrrraaaattttoooorrrr (m//):, SSSSuuuubbbbssssttttiiiittttuuuuttttiiiioooonnnn ooooppppeeeerrrraaaattttoooorrrr (s///):, IIIInnnn----mmmmeeeemmmmoooorrrryyyy ffffoooorrrrmmmmaaaattttttttiiiinnnngggg ffffuuuunnnnccccttttiiiioooonnnn (_s_p_r_i_n_t_f()):, OOOOuuuuttttppppuuuutttt ffffoooorrrrmmmmaaaattttttttiiiinnnngggg ffffuuuunnnnccccttttiiiioooonnnnssss (_p_r_i_n_t_f() and _w_r_i_t_e()):, CCCCaaaasssseeee----mmmmaaaappppppppiiiinnnngggg ffffuuuunnnnccccttttiiiioooonnnnssss (_l_c(), _l_c_f_i_r_s_t(), _u_c(), _u_c_f_i_r_s_t()):, PPPPOOOOSSSSIIIIXXXX llllooooccccaaaalllleeee----ddddeeeeppppeeeennnnddddeeeennnntttt ffffuuuunnnnccccttttiiiioooonnnnssss (_l_o_c_a_l_e_c_o_n_v(), _s_t_r_c_o_l_l(),_s_t_r_f_t_i_m_e(), _s_t_r_x_f_r_m()):, PPPPOOOOSSSSIIIIXXXX cccchhhhaaaarrrraaaacccctttteeeerrrr ccccllllaaaassssssss tttteeeessssttttssss (_i_s_a_l_n_u_m(), _i_s_a_l_p_h_a(), _i_s_d_i_g_i_t(),_i_s_g_r_a_p_h(), _i_s_l_o_w_e_r(), _i_s_p_r_i_n_t(), _i_s_p_u_n_c_t(), _i_s_s_p_a_c_e(), _i_s_u_p_p_e_r(), _i_s_x_d_i_g_i_t()): ENVIRONMENT PERL_BADLANG, LC_ALL, LC_CTYPE, LC_COLLATE, LC_MONETARY, LC_NUMERIC, LC_TIME, LANG NOTES Backward compatibility I18N:Collate obsolete Sort speed and memory use impacts write() and LC_NUMERIC Freely available locale definitions I18n and l10n An imperfect standard BUGS Broken systems SEE ALSO HISTORY ppppeeeerrrrllllrrrreeeeffff ---- PPPPeeeerrrrllll rrrreeeeffffeeeerrrreeeennnncccceeeessss aaaannnndddd nnnneeeesssstttteeeedddd ddddaaaattttaaaa ssssttttrrrruuuuccccttttuuuurrrreeeessss DESCRIPTION Making References Page 30 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Using References Symbolic references Not-so-symbolic references Pseudo-hashes: Using an array as a hash Function Templates WARNING SEE ALSO ppppeeeerrrrllllddddsssscccc ---- PPPPeeeerrrrllll DDDDaaaattttaaaa SSSSttttrrrruuuuccccttttuuuurrrreeeessss CCCCooooooookkkkbbbbooooooookkkk DESCRIPTION arrays of arrays, hashes of arrays, arrays of hashes, hashes of hashes, more elaborate constructs REFERENCES COMMON MISTAKES CAVEAT ON PRECEDENCE WHY YOU SHOULD ALWAYS use strict DEBUGGING CODE EXAMPLES LISTS OF LISTS Declaration of a LIST OF LISTS Generation of a LIST OF LISTS Access and Printing of a LIST OF LISTS HASHES OF LISTS Declaration of a HASH OF LISTS Generation of a HASH OF LISTS Access and Printing of a HASH OF LISTS LISTS OF HASHES Declaration of a LIST OF HASHES Page 31 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Generation of a LIST OF HASHES Access and Printing of a LIST OF HASHES HASHES OF HASHES Declaration of a HASH OF HASHES Generation of a HASH OF HASHES Access and Printing of a HASH OF HASHES MORE ELABORATE RECORDS Declaration of MORE ELABORATE RECORDS Declaration of a HASH OF COMPLEX RECORDS Generation of a HASH OF COMPLEX RECORDS Database Ties SEE ALSO AUTHOR ppppeeeerrrrlllllllloooollll,,,, ppppeeeerrrrllllLLLLooooLLLL ---- MMMMaaaannnniiiippppuuuullllaaaattttiiiinnnngggg LLLLiiiissssttttssss ooooffff LLLLiiiissssttttssss iiiinnnn PPPPeeeerrrrllll DESCRIPTION Declaration and Access of Lists of Lists Growing Your Own Access and Printing Slices SEE ALSO AUTHOR ppppeeeerrrrllllttttooooooootttt ---- TTTToooommmm''''ssss oooobbbbjjjjeeeecccctttt----oooorrrriiiieeeennnntttteeeedddd ttttuuuuttttoooorrrriiiiaaaallll ffffoooorrrr ppppeeeerrrrllll DESCRIPTION Creating a Class Object Representation Class Interface Page 32 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Constructors and Instance Methods Planning for the Future: Better Constructors Destructors Other Object Methods Class Data Accessing Class Data Debugging Methods Class Destructors Documenting the Interface Aggregation Inheritance Overridden Methods Multiple Inheritance UNIVERSAL: The Root of All Objects Alternate Object Representations Arrays as Objects Closures as Objects AUTOLOAD: Proxy Methods Autoloaded Data Methods Inherited Autoloaded Data Methods Metaclassical Tools Class::Struct Data Members as Variables NOTES Object Terminology SEE ALSO Page 33 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) AUTHOR AND COPYRIGHT COPYRIGHT Acknowledgments ppppeeeerrrrlllloooobbbbjjjj ---- PPPPeeeerrrrllll oooobbbbjjjjeeeeccccttttssss DESCRIPTION An Object is Simply a Reference A Class is Simply a Package A Method is Simply a Subroutine Method Invocation Default UNIVERSAL methods _i_s_a(CLASS), _c_a_n(METHOD), _V_E_R_S_I_O_N( [NEED] ) Destructors WARNING Summary Two-Phased Garbage Collection SEE ALSO ppppeeeerrrrllllttttiiiieeee ---- hhhhoooowwww ttttoooo hhhhiiiiddddeeee aaaannnn oooobbbbjjjjeeeecccctttt ccccllllaaaassssssss iiiinnnn aaaa ssssiiiimmmmpppplllleeee vvvvaaaarrrriiiiaaaabbbblllleeee SYNOPSIS DESCRIPTION Tying Scalars TIESCALAR classname, LIST, FETCH this, STORE this, value, DESTROY this Tying Arrays TIEARRAY classname, LIST, FETCH this, index, STORE this, index, value, DESTROY this Tying Hashes USER, HOME, CLOBBER, LIST, TIEHASH classname, LIST, FETCH this, key, STORE this, key, value, DELETE this, key, CLEAR this, EXISTS this, key, FIRSTKEY this, NEXTKEY this, lastkey, DESTROY this Page 34 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Tying FileHandles TIEHANDLE classname, LIST, WRITE this, LIST, PRINT this, LIST, PRINTF this, LIST, READ this, LIST, READLINE this, GETC this, CLOSE this, DESTROY this The untie Gotcha SEE ALSO BUGS AUTHOR ppppeeeerrrrllllbbbbooootttt ---- BBBBaaaagggg''''oooo OOOObbbbjjjjeeeecccctttt TTTTrrrriiiicccckkkkssss ((((tttthhhheeee BBBBOOOOTTTT)))) DESCRIPTION OO SCALING TIPS INSTANCE VARIABLES SCALAR INSTANCE VARIABLES INSTANCE VARIABLE INHERITANCE OBJECT RELATIONSHIPS OVERRIDING SUPERCLASS METHODS USING RELATIONSHIP WITH SDBM THINKING OF CODE REUSE CLASS CONTEXT AND THE OBJECT INHERITING A CONSTRUCTOR DELEGATION ppppeeeerrrrlllliiiippppcccc ---- PPPPeeeerrrrllll iiiinnnntttteeeerrrrpppprrrroooocccceeeessssssss ccccoooommmmmmmmuuuunnnniiiiccccaaaattttiiiioooonnnn ((((ssssiiiiggggnnnnaaaallllssss,,,, ffffiiiiffffoooossss,,,, ppppiiiippppeeeessss,,,, ssssaaaaffffeeee ssssuuuubbbbpppprrrroooocccceeeesssssssseeeessss,,,, ssssoooocccckkkkeeeettttssss,,,, aaaannnndddd sssseeeemmmmaaaapppphhhhoooorrrreeeessss)))) DESCRIPTION Signals Named Pipes WARNING Using open() for IPC Page 35 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Filehandles Background Processes Complete Dissociation of Child from Parent Safe Pipe Opens Bidirectional Communication with Another Process Bidirectional Communication with Yourself Sockets: Client/Server Communication Internet Line Terminators Internet TCP Clients and Servers Unix-Domain TCP Clients and Servers TCP Clients with IO::Socket A Simple Client Proto, PeerAddr, PeerPort A Webget Client Interactive Client with IO::Socket TCP Servers with IO::Socket Proto, LocalPort, Listen, Reuse UDP: Message Passing SysV IPC NOTES BUGS AUTHOR SEE ALSO ppppeeeerrrrllllddddeeeebbbbuuuugggg ---- PPPPeeeerrrrllll ddddeeeebbbbuuuuggggggggiiiinnnngggg DESCRIPTION The Perl Debugger Debugger Commands h [command], p expr, x expr, V [pkg [vars]], X [vars], Page 36 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) T, s [expr], n [expr], <CR>, c [line|sub], l, l min+incr, l min-max, l line, l subname, -, w [line], f filename, /pattern/, ?pattern?, L, S [[!]pattern], t, t expr, b [line] [condition], b subname [condition], b postpone subname [condition], b load filename, b compile subname, d [line], D, a [line] command, A, W [expr], W, O [opt[=val]] [opt"val"] [opt?].., recallCommand, ShellBang, pager, tkRunning, signalLevel, warnLevel, dieLevel, AutoTrace, LineInfo, inhibit_exit, PrintRet, ornaments, frame, maxTraceLen, arrayDepth, hashDepth, compactDump, veryCompact, globPrint, DumpDBFiles, DumpPackages, DumpReused, quote, HighBit, undefPrint, UsageOnly, TTY, noTTY, ReadLine, NonStop, < [ command ], << command, > command, >> command, { [ command ], {{ command, ! number, ! -number, ! pattern, !! cmd, H -number, q or ^D, R, |dbcmd, ||dbcmd, command, m expr, m package Debugger input/output Prompt, Multiline commands, Stack backtrace, Listing, Frame listing Debugging compile-time statements Debugger Customization Readline Support Editor Support for Debugging The Perl Profiler Debugger support in perl Debugger Internals Other resources BUGS Debugging Perl memory usage Using $ENV{PERL_DEBUG_MSTATS} buckets SMALLEST(APPROX)..GREATEST(APPROX), Free/Used, Total sbrk(): SBRKed/SBRKs:CONTINUOUS, pad: 0, heads: 2192, chain: 0, tail: 6144 Example of using ----DDDDLLLL switch 717, 002, 054, 602, 702, 704 ----DDDDLLLL details !!!, !!, ! Page 37 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Limitations of ----DDDDLLLL statistic Debugging regular expressions Compile-time output anchored _S_T_R_I_N_G at _P_O_S, floating _S_T_R_I_N_G at _P_O_S_1.._P_O_S_2, matching floating/anchored, minlen, stclass _T_Y_P_E, noscan, isall, GPOS, plus, implicit, with eval, anchored(TYPE) Types of nodes Run-time output ppppeeeerrrrllllddddiiiiaaaagggg ---- vvvvaaaarrrriiiioooouuuussss PPPPeeeerrrrllll ddddiiiiaaaaggggnnnnoooossssttttiiiiccccssss DESCRIPTION ppppeeeerrrrllllsssseeeecccc ---- PPPPeeeerrrrllll sssseeeeccccuuuurrrriiiittttyyyy DESCRIPTION Laundering and Detecting Tainted Data Switches On the "#!" Line Cleaning Up Your Path Security Bugs Protecting Your Programs SEE ALSO ppppeeeerrrrllllttttrrrraaaapppp ---- PPPPeeeerrrrllll ttttrrrraaaappppssss ffffoooorrrr tttthhhheeee uuuunnnnwwwwaaaarrrryyyy DESCRIPTION Awk Traps C Traps Sed Traps Shell Traps Perl Traps Perl4 to Perl5 Traps Discontinuance, Deprecation, and BugFix traps, Parsing Traps, Numerical Traps, General data type traps, Context Traps - scalar, list contexts, Precedence Page 38 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Traps, General Regular Expression Traps using s///, etc, Subroutine, Signal, Sorting Traps, OS Traps, DBM Traps, Unclassified Traps Discontinuance, Deprecation, and BugFix traps Discontinuance, Deprecation, BugFix, Discontinuance, Discontinuance, Discontinuance, BugFix, Discontinuance, Discontinuance, BugFix, Discontinuance, Discontinuance, Deprecation, Discontinuance Parsing Traps Parsing, Parsing, Parsing, Parsing Numerical Traps Numerical, Numerical, Numerical General data type traps (Arrays), (Arrays), (Hashes), (Globs), (Globs), (Scalar String), (Constants), (Scalars), (Variable Suicide) Context Traps - scalar, list contexts (list context), (scalar context), (scalar context), (list, builtin) Precedence Traps Precedence, Precedence, Precedence, Precedence, Precedence, Precedence, Precedence General Regular Expression Traps using s///, etc. Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression, Regular Expression Subroutine, Signal, Sorting Traps (Signals), (Sort Subroutine), _w_a_r_n() won't let you specify a filehandle OS Traps (SysV), (SysV) Interpolation Traps Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation, Interpolation DBM Traps DBM, DBM Unclassified Traps require/do trap using returned value, split on empty string with LIMIT specified Page 39 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) ppppeeeerrrrllllppppoooorrrrtttt ---- WWWWrrrriiiittttiiiinnnngggg ppppoooorrrrttttaaaabbbblllleeee PPPPeeeerrrrllll DESCRIPTION Not all Perl programs have to be portable, The vast majority of Perl iiiissss portable ISSUES Newlines File Paths System Interaction Interprocess Communication (IPC) External Subroutines (XS) Standard Modules Time and Date System Resources Security Style CPAN TESTERS Mailing list: cpan-testers@perl.org, Testing results: http://www.connect.net/gbarr/cpan-test/ PLATFORMS Unix DOS and Derivatives The djgpp environment for DOS, http://www.delorie.com/djgpp/, The EMX environment for DOS, OS/2, etc. emx@iaehv.nl,http://www.juge.com/bbs/Hobb.19.html, Build instructions for Win32, the _p_e_r_l_w_i_n_3_2 manpage, The ActiveState Pages, http://www.activestate.com/ MacPerl The MacPerl Pages, http://www.ptf.com/macperl/, The MacPerl mailing list, mac-perl-request@iis.ee.ethz.ch VMS the _p_e_r_l_v_m_s._p_o_d manpage, vmsperl list, vmsperl- request@newman.upenn.edu, vmsperl on the web, http://www.sidhe.org/vmsperl/index.html Page 40 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) EBCDIC Platforms perl-mvs list, AS/400 Perl information at http://as400.rochester.ibm.com Other perls Atari, Guido Flohr's page http://stud.uni- sb.de/~gufl0000/, HP 300 MPE/iX http://www.cccd.edu/~markb/perlix.html, Novell Netware FUNCTION IMPLEMENTATIONS Alphabetical Listing of Perl Functions -_X FILEHANDLE, -_X EXPR, -_X, binmode FILEHANDLE, chmod LIST, chown LIST, chroot FILENAME, chroot, crypt PLAINTEXT,SALT, dbmclose HASH, dbmopen HASH,DBNAME,MODE, dump LABEL, exec LIST, fcntl FILEHANDLE,FUNCTION,SCALAR, flock FILEHANDLE,OPERATION, fork, getlogin, getpgrp PID, getppid, getpriority WHICH,WHO, getpwnam NAME, getgrnam NAME, getnetbyname NAME, getpwuid UID, getgrgid GID, getnetbyaddr ADDR,ADDRTYPE, getprotobynumber NUMBER, getservbyport PORT,PROTO, getpwent, getgrent, gethostent, getnetent, getprotoent, getservent, setpwent, setgrent, sethostent STAYOPEN, setnetent STAYOPEN, setprotoent STAYOPEN, setservent STAYOPEN, endpwent, endgrent, endhostent, endnetent, endprotoent, endservent, getsockopt SOCKET,LEVEL,OPTNAME, glob EXPR, glob, ioctl FILEHANDLE,FUNCTION,SCALAR, kill LIST, link OLDFILE,NEWFILE, lstat FILEHANDLE, lstat EXPR, lstat, msgctl ID,CMD,ARG, msgget KEY,FLAGS, msgsnd ID,MSG,FLAGS, msgrcv ID,VAR,SIZE,TYPE,FLAGS, open FILEHANDLE,EXPR, open FILEHANDLE, pipe READHANDLE,WRITEHANDLE, readlink EXPR, readlink, select RBITS,WBITS,EBITS,TIMEOUT, semctl ID,SEMNUM,CMD,ARG, semget KEY,NSEMS,FLAGS, semop KEY,OPSTRING, setpgrp PID,PGRP, setpriority WHICH,WHO,PRIORITY, setsockopt SOCKET,LEVEL,OPTNAME,OPTVAL, shmctl ID,CMD,ARG, shmget KEY,SIZE,FLAGS, shmread ID,VAR,POS,SIZE, shmwrite ID,STRING,POS,SIZE, socketpair SOCKET1,SOCKET2,DOMAIN,TYPE,PROTOCOL, stat FILEHANDLE, stat EXPR, stat, symlink OLDFILE,NEWFILE, syscall LIST, system LIST, times, truncate FILEHANDLE,LENGTH, truncate EXPR,LENGTH, umask EXPR, umask, utime LIST, wait, waitpid PID,FLAGS AUTHORS / CONTRIBUTORS VERSION Page 41 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) ppppeeeerrrrllllssssttttyyyylllleeee ---- PPPPeeeerrrrllll ssssttttyyyylllleeee gggguuuuiiiiddddeeee DESCRIPTION ppppeeeerrrrllllppppoooodddd ---- ppppllllaaaaiiiinnnn oooolllldddd ddddooooccccuuuummmmeeeennnnttttaaaattttiiiioooonnnn DESCRIPTION Verbatim Paragraph Command Paragraph Ordinary Block of Text The Intent Embedding Pods in Perl Modules Common Pod Pitfalls SEE ALSO AUTHOR ppppeeeerrrrllllbbbbooooooookkkk ---- PPPPeeeerrrrllll bbbbooooooookkkk iiiinnnnffffoooorrrrmmmmaaaattttiiiioooonnnn DESCRIPTION ppppeeeerrrrlllleeeemmmmbbbbeeeedddd ---- hhhhoooowwww ttttoooo eeeemmmmbbbbeeeedddd ppppeeeerrrrllll iiiinnnn yyyyoooouuuurrrr CCCC pppprrrrooooggggrrrraaaammmm DESCRIPTION PREAMBLE UUUUsssseeee CCCC ffffrrrroooommmm PPPPeeeerrrrllll????, UUUUsssseeee aaaa UUUUnnnniiiixxxx pppprrrrooooggggrrrraaaammmm ffffrrrroooommmm PPPPeeeerrrrllll????, UUUUsssseeee PPPPeeeerrrrllll ffffrrrroooommmm PPPPeeeerrrrllll????, UUUUsssseeee CCCC ffffrrrroooommmm CCCC????, UUUUsssseeee PPPPeeeerrrrllll ffffrrrroooommmm CCCC???? ROADMAP Compiling your C program Adding a Perl interpreter to your C program Calling a Perl subroutine from your C program Evaluating a Perl statement from your C program program Performing Perl pattern matches and substitutions from your C Fiddling with the Perl stack from your C program Page 42 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Maintaining a persistent interpreter Maintaining multiple interpreter instances program Using Perl modules, which themselves use C libraries, from your C Embedding Perl under Win32 MORAL AUTHOR COPYRIGHT ppppeeeerrrrllllaaaappppiiiioooo ---- ppppeeeerrrrllll''''ssss IIIIOOOO aaaabbbbssssttttrrrraaaaccccttttiiiioooonnnn iiiinnnntttteeeerrrrffffaaaacccceeee.... SYNOPSIS DESCRIPTION PPPPeeeerrrrllllIIIIOOOO ****, PPPPeeeerrrrllllIIIIOOOO____ssssttttddddiiiinnnn(((()))), PPPPeeeerrrrllllIIIIOOOO____ssssttttddddoooouuuutttt(((()))), PPPPeeeerrrrllllIIIIOOOO____ssssttttddddeeeerrrrrrrr(((()))), PPPPeeeerrrrllllIIIIOOOO____ooooppppeeeennnn((((ppppaaaatttthhhh,,,, mmmmooooddddeeee)))), PPPPeeeerrrrllllIIIIOOOO____ffffddddooooppppeeeennnn((((ffffdddd,,,,mmmmooooddddeeee)))), PPPPeeeerrrrllllIIIIOOOO____pppprrrriiiinnnnttttffff((((ffff,,,,ffffmmmmtttt,,,,............)))), PPPPeeeerrrrllllIIIIOOOO____vvvvpppprrrriiiinnnnttttffff((((ffff,,,,ffffmmmmtttt,,,,aaaa)))), PPPPeeeerrrrllllIIIIOOOO____ssssttttddddoooouuuuttttffff((((ffffmmmmtttt,,,,............)))), PPPPeeeerrrrllllIIIIOOOO____rrrreeeeaaaadddd((((ffff,,,,bbbbuuuuffff,,,,ccccoooouuuunnnntttt)))), PPPPeeeerrrrllllIIIIOOOO____wwwwrrrriiiitttteeee((((ffff,,,,bbbbuuuuffff,,,,ccccoooouuuunnnntttt)))), PPPPeeeerrrrllllIIIIOOOO____cccclllloooosssseeee((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____ppppuuuuttttssss((((ffff,,,,ssss)))), PPPPeeeerrrrllllIIIIOOOO____ppppuuuuttttcccc((((ffff,,,,cccc)))), PPPPeeeerrrrllllIIIIOOOO____uuuunnnnggggeeeettttcccc((((ffff,,,,cccc)))), PPPPeeeerrrrllllIIIIOOOO____ggggeeeettttcccc((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____eeeeooooffff((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____eeeerrrrrrrroooorrrr((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____ffffiiiilllleeeennnnoooo((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____cccclllleeeeaaaarrrreeeerrrrrrrr((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____fffflllluuuusssshhhh((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____tttteeeellllllll((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____sssseeeeeeeekkkk((((ffff,,,,oooo,,,,wwww)))), PPPPeeeerrrrllllIIIIOOOO____ggggeeeettttppppoooossss((((ffff,,,,pppp)))), PPPPeeeerrrrllllIIIIOOOO____sssseeeettttppppoooossss((((ffff,,,,pppp)))), PPPPeeeerrrrllllIIIIOOOO____rrrreeeewwwwiiiinnnndddd((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____ttttmmmmppppffffiiiilllleeee(((()))) Co-existence with stdio PPPPeeeerrrrllllIIIIOOOO____iiiimmmmppppoooorrrrttttFFFFIIIILLLLEEEE((((ffff,,,,ffffllllaaaaggggssss)))), PPPPeeeerrrrllllIIIIOOOO____eeeexxxxppppoooorrrrttttFFFFIIIILLLLEEEE((((ffff,,,,ffffllllaaaaggggssss)))), PPPPeeeerrrrllllIIIIOOOO____ffffiiiinnnnddddFFFFIIIILLLLEEEE((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____rrrreeeelllleeeeaaaasssseeeeFFFFIIIILLLLEEEE((((pppp,,,,ffff)))), PPPPeeeerrrrllllIIIIOOOO____sssseeeettttlllliiiinnnneeeebbbbuuuuffff((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____hhhhaaaassss____ccccnnnnttttppppttttrrrr((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____ggggeeeetttt____ppppttttrrrr((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____ggggeeeetttt____ccccnnnntttt((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____ccccaaaannnnsssseeeetttt____ccccnnnntttt((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____ffffaaaasssstttt____ggggeeeettttssss((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____sssseeeetttt____ppppttttrrrrccccnnnntttt((((ffff,,,,pppp,,,,cccc)))), PPPPeeeerrrrllllIIIIOOOO____sssseeeetttt____ccccnnnntttt((((ffff,,,,cccc)))), PPPPeeeerrrrllllIIIIOOOO____hhhhaaaassss____bbbbaaaasssseeee((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____ggggeeeetttt____bbbbaaaasssseeee((((ffff)))), PPPPeeeerrrrllllIIIIOOOO____ggggeeeetttt____bbbbuuuuffffssssiiiizzzz((((ffff)))) ppppeeeerrrrllllxxxxssss ---- XXXXSSSS llllaaaannnngggguuuuaaaaggggeeee rrrreeeeffffeeeerrrreeeennnncccceeee mmmmaaaannnnuuuuaaaallll DESCRIPTION Introduction On The Road The Anatomy of an XSUB Page 43 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) The Argument Stack The RETVAL Variable The MODULE Keyword The PACKAGE Keyword The PREFIX Keyword The OUTPUT: Keyword The CODE: Keyword The INIT: Keyword The NO_INIT Keyword Initializing Function Parameters Default Parameter Values The PREINIT: Keyword The SCOPE: Keyword The INPUT: Keyword Variable-length Parameter Lists The C_ARGS: Keyword The PPCODE: Keyword Returning Undef And Empty Lists The REQUIRE: Keyword The CLEANUP: Keyword The BOOT: Keyword The VERSIONCHECK: Keyword The PROTOTYPES: Keyword The PROTOTYPE: Keyword The ALIAS: Keyword The INTERFACE: Keyword Page 44 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) The INTERFACE_MACRO: Keyword The INCLUDE: Keyword The CASE: Keyword The & Unary Operator Inserting Comments and C Preprocessor Directives Using XS With C++ Interface Strategy Perl Objects And C Structures The Typemap EXAMPLES XS VERSION AUTHOR ppppeeeerrrrllllxxxxssssttttuuuutttt,,,, ppppeeeerrrrllllXXXXSSSSttttuuuutttt ---- TTTTuuuuttttoooorrrriiiiaaaallll ffffoooorrrr XXXXSSSSUUUUBBBBssss DESCRIPTION VERSION CAVEAT DYNAMIC VERSUS STATIC EXAMPLE 1 EXAMPLE 2 WHAT HAS GONE ON? WRITING GOOD TEST SCRIPTS EXAMPLE 3 WHAT'S NEW HERE? INPUT AND OUTPUT PARAMETERS THE XSUBPP COMPILER THE TYPEMAP FILE WARNING Page 45 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) EXAMPLE 4 WHAT HAS HAPPENED HERE? SPECIFYING ARGUMENTS TO XSUBPP THE ARGUMENT STACK EXTENDING YOUR EXTENSION DOCUMENTING YOUR EXTENSION INSTALLING YOUR EXTENSION SEE ALSO Author Last Changed ppppeeeerrrrllllgggguuuuttttssss ---- PPPPeeeerrrrllll''''ssss IIIInnnntttteeeerrrrnnnnaaaallll FFFFuuuunnnnccccttttiiiioooonnnnssss DESCRIPTION Variables Datatypes What is an "IV"? Working with SVs What's Really Stored in an SV? Working with AVs Working with HVs Hash API Extensions References Blessed References and Class Objects Creating New Variables Reference Counts and Mortality Stashes and Globs Double-Typed SVs Page 46 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Magic Variables Assigning Magic Magic Virtual Tables Finding Magic Understanding the Magic of Tied Hashes and Arrays Localizing changes SAVEINT(int i), SAVEIV(IV i), SAVEI32(I32 i), SAVELONG(long i), SAVESPTR(s), SAVEPPTR(p), SAVEFREESV(SV *sv), SAVEFREEOP(OP *op), SAVEFREEPV(p), SAVECLEARSV(SV *sv), SAVEDELETE(HV *hv, char *key, I32 length), SAVEDESTRUCTOR(f,p), SAVESTACK_POS(), SV* save_scalar(GV *gv), AV* save_ary(GV *gv), HV* save_hash(GV *gv), void save_item(SV *item), void save_list(SV **sarg, I32 maxsarg), SV* save_svref(SV **sptr), void save_aptr(AV **aptr), void save_hptr(HV **hptr) Subroutines XSUBs and the Argument Stack Calling Perl Routines from within C Programs Memory Allocation PerlIO Putting a C value on Perl stack Scratchpads Scratchpads and recursion Compiled code Code tree Examining the tree Compile pass 1: check routines Compile pass 1a: constant folding Compile pass 2: context propagation Compile pass 3: peephole optimization Page 47 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) API LISTING av_clear, av_extend, av_fetch, AvFILL, av_len, av_make, av_pop, av_push, av_shift, av_store, av_undef, av_unshift, CLASS, Copy, croak, CvSTASH, PL_DBsingle, PL_DBsub, PL_DBtrace, dMARK, dORIGMARK, PL_dowarn, dSP, dXSARGS, dXSI32, do_binmode, ENTER, EXTEND, fbm_compile, fbm_instr, FREETMPS, G_ARRAY, G_DISCARD, G_EVAL, GIMME, GIMME_V, G_NOARGS, G_SCALAR, gv_fetchmeth, gv_fetchmethod, gv_fetchmethod_autoload, G_VOID, gv_stashpv, gv_stashsv, GvSV, HEf_SVKEY, HeHASH, HeKEY, HeKLEN, HePV, HeSVKEY, HeSVKEY_force, HeSVKEY_set, HeVAL, hv_clear, hv_delayfree_ent, hv_delete, hv_delete_ent, hv_exists, hv_exists_ent, hv_fetch, hv_fetch_ent, hv_free_ent, hv_iterinit, hv_iterkey, hv_iterkeysv, hv_iternext, hv_iternextsv, hv_iterval, hv_magic, HvNAME, hv_store, hv_store_ent, hv_undef, isALNUM, isALPHA, isDIGIT, isLOWER, isSPACE, isUPPER, items, ix, LEAVE, looks_like_number, MARK, mg_clear, mg_copy, mg_find, mg_free, mg_get, mg_len, mg_magical, mg_set, Move, PL_na, New, newAV, Newc, newCONSTSUB, newHV, newRV_inc, newRV_noinc, NEWSV, newSViv, newSVnv, newSVpv, newSVpvf, newSVpvn, newSVrv, newSVsv, newXS, newXSproto, Newz, Nullav, Nullch, Nullcv, Nullhv, Nullsv, ORIGMARK, perl_alloc, perl_call_argv, perl_call_method, perl_call_pv, perl_call_sv, perl_construct, perl_destruct, perl_eval_sv, perl_eval_pv, perl_free, perl_get_av, perl_get_cv, perl_get_hv, perl_get_sv, perl_parse, perl_require_pv, perl_run, POPi, POPl, POPp, POPn, POPs, PUSHMARK, PUSHi, PUSHn, PUSHp, PUSHs, PUSHu, PUTBACK, Renew, Renewc, RETVAL, safefree, safemalloc, saferealloc, savepv, savepvn, SAVETMPS, SP, SPAGAIN, ST, strEQ, strGE, strGT, strLE, strLT, strNE, strnEQ, strnNE, sv_2mortal, sv_bless, sv_catpv, sv_catpv_mg, sv_catpvn, sv_catpvn_mg, sv_catpvf, sv_catpvf_mg, sv_catsv, sv_catsv_mg, sv_chop, sv_cmp, SvCUR, SvCUR_set, sv_dec, sv_derived_from, sv_derived_from, SvEND, sv_eq, SvGETMAGIC, SvGROW, sv_grow, sv_inc, sv_insert, SvIOK, SvIOK_off, SvIOK_on, SvIOK_only, SvIOKp, sv_isa, sv_isobject, SvIV, SvIVX, SvLEN, sv_len, sv_magic, sv_mortalcopy, sv_newmortal, SvNIOK, SvNIOK_off, SvNIOKp, PL_sv_no, SvNOK, SvNOK_off, SvNOK_on, SvNOK_only, SvNOKp, SvNV, SvNVX, SvOK, SvOOK, SvPOK, SvPOK_off, SvPOK_on, SvPOK_only, SvPOKp, SvPV, SvPV_force, SvPVX, SvREFCNT, SvREFCNT_dec, SvREFCNT_inc, SvROK, SvROK_off, SvROK_on, SvRV, SvSETMAGIC, sv_setiv, sv_setiv_mg, sv_setnv, sv_setnv_mg, sv_setpv, sv_setpv_mg, sv_setpviv, sv_setpviv_mg, sv_setpvn, sv_setpvn_mg, sv_setpvf, sv_setpvf_mg, sv_setref_iv, sv_setref_nv, sv_setref_pv, sv_setref_pvn, SvSetSV, SvSetSV_nosteal, sv_setsv, sv_setsv_mg, sv_setuv, sv_setuv_mg, SvSTASH, SvTAINT, SvTAINTED, SvTAINTED_off, SvTAINTED_on, SVt_IV, SVt_PV, SVt_PVAV, SVt_PVCV, SVt_PVHV, SVt_PVMG, SVt_NV, SvTRUE, SvTYPE, svtype, PL_sv_undef, sv_unref, SvUPGRADE, sv_upgrade, sv_usepvn, sv_usepvn_mg, _s_v__v_c_a_t_p_v_f_n(sv, pat, Page 48 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) patlen, args, svargs, svmax, used_locale), _s_v__v_s_e_t_p_v_f_n(sv, pat, patlen, args, svargs, svmax, used_locale), SvUV, SvUVX, PL_sv_yes, THIS, toLOWER, toUPPER, warn, XPUSHi, XPUSHn, XPUSHp, XPUSHs, XPUSHu, XS, XSRETURN, XSRETURN_EMPTY, XSRETURN_IV, XSRETURN_NO, XSRETURN_NV, XSRETURN_PV, XSRETURN_UNDEF, XSRETURN_YES, XST_mIV, XST_mNV, XST_mNO, XST_mPV, XST_mUNDEF, XST_mYES, XS_VERSION, XS_VERSION_BOOTCHECK, Zero AUTHORS ppppeeeerrrrllllccccaaaallllllll ---- PPPPeeeerrrrllll ccccaaaalllllllliiiinnnngggg ccccoooonnnnvvvveeeennnnttttiiiioooonnnnssss ffffrrrroooommmm CCCC DESCRIPTION An Error Handler, An Event Driven Program THE PERL_CALL FUNCTIONS ppppeeeerrrrllll____ccccaaaallllllll____ssssvvvv, ppppeeeerrrrllll____ccccaaaallllllll____ppppvvvv, ppppeeeerrrrllll____ccccaaaallllllll____mmmmeeeetttthhhhoooodddd, ppppeeeerrrrllll____ccccaaaallllllll____aaaarrrrggggvvvv FLAG VALUES G_VOID G_SCALAR G_ARRAY G_DISCARD G_NOARGS G_EVAL G_KEEPERR Determining the Context KNOWN PROBLEMS EXAMPLES No Parameters, Nothing returned Passing Parameters Returning a Scalar Returning a list of values Returning a list in a scalar context Page 49 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Returning Data from Perl via the parameter list Using G_EVAL Using G_KEEPERR Using perl_call_sv Using perl_call_argv Using perl_call_method Using GIMME_V Using Perl to dispose of temporaries Strategies for storing Callback Context Information 1. Ignore the problem - Allow only 1 callback, 2. Create a sequence of callbacks - hard wired limit, 3. Use a parameter to map to the Perl callback Alternate Stack Manipulation Creating and calling an anonymous subroutine in C SEE ALSO AUTHOR DATE ppppeeeerrrrllllhhhhiiiisssstttt ---- tttthhhheeee PPPPeeeerrrrllll hhhhiiiissssttttoooorrrryyyy rrrreeeeccccoooorrrrddddssss DESCRIPTION INTRODUCTION THE KEEPERS OF THE PUMPKIN PUMPKIN? THE RECORDS SELECTED RELEASE SIZES SELECTED PATCH SIZES THE KEEPERS OF THE RECORDS PPPPRRRRAAAAGGGGMMMMAAAA DDDDOOOOCCCCUUUUMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN Page 50 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) aaaattttttttrrrrssss ---- sssseeeetttt////ggggeeeetttt aaaattttttttrrrriiiibbbbuuuutttteeeessss ooooffff aaaa ssssuuuubbbbrrrroooouuuuttttiiiinnnneeee SYNOPSIS DESCRIPTION method, locked rrrreeee ---- PPPPeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo aaaalllltttteeeerrrr rrrreeeegggguuuullllaaaarrrr eeeexxxxpppprrrreeeessssssssiiiioooonnnn bbbbeeeehhhhaaaavvvviiiioooouuuurrrr SYNOPSIS DESCRIPTION aaaauuuuttttoooouuuusssseeee ---- ppppoooossssttttppppoooonnnneeee llllooooaaaadddd ooooffff mmmmoooodddduuuulllleeeessss uuuunnnnttttiiiillll aaaa ffffuuuunnnnccccttttiiiioooonnnn iiiissss uuuusssseeeedddd SYNOPSIS DESCRIPTION WARNING AUTHOR SEE ALSO bbbbaaaasssseeee ---- EEEEssssttttaaaabbbblllliiiisssshhhh IIIISSSS----AAAA rrrreeeellllaaaattttiiiioooonnnnsssshhhhiiiipppp wwwwiiiitttthhhh bbbbaaaasssseeee ccccllllaaaassssssss aaaatttt ccccoooommmmppppiiiilllleeee ttttiiiimmmmeeee SYNOPSIS DESCRIPTION SEE ALSO bbbblllliiiibbbb ---- UUUUsssseeee MMMMaaaakkkkeeeeMMMMaaaakkkkeeeerrrr''''ssss uuuunnnniiiinnnnssssttttaaaalllllllleeeedddd vvvveeeerrrrssssiiiioooonnnn ooooffff aaaa ppppaaaacccckkkkaaaaggggeeee SYNOPSIS DESCRIPTION BUGS AUTHOR ccccoooonnnnssssttttaaaannnntttt ---- PPPPeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo ddddeeeeccccllllaaaarrrreeee ccccoooonnnnssssttttaaaannnnttttssss SYNOPSIS DESCRIPTION NOTES Page 51 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) TECHNICAL NOTE BUGS AUTHOR COPYRIGHT ddddiiiiaaaaggggnnnnoooossssttttiiiiccccssss ---- PPPPeeeerrrrllll ccccoooommmmppppiiiilllleeeerrrr pppprrrraaaaggggmmmmaaaa ttttoooo ffffoooorrrrcccceeee vvvveeeerrrrbbbboooosssseeee wwwwaaaarrrrnnnniiiinnnngggg ddddiiiiaaaaggggnnnnoooossssttttiiiiccccssss SYNOPSIS DESCRIPTION The diagnostics Pragma The _s_p_l_a_i_n Program EXAMPLES INTERNALS BUGS AUTHOR ffffiiiieeeellllddddssss ---- ccccoooommmmppppiiiilllleeee----ttttiiiimmmmeeee ccccllllaaaassssssss ffffiiiieeeellllddddssss SYNOPSIS DESCRIPTION SEE ALSO iiiinnnntttteeeeggggeeeerrrr ---- PPPPeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo ccccoooommmmppppuuuutttteeee aaaarrrriiiitttthhhhmmmmeeeettttiiiicccc iiiinnnn iiiinnnntttteeeeggggeeeerrrr iiiinnnnsssstttteeeeaaaadddd ooooffff ddddoooouuuubbbblllleeee SYNOPSIS DESCRIPTION lllleeeessssssss ---- ppppeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo rrrreeeeqqqquuuueeeesssstttt lllleeeessssssss ooooffff ssssoooommmmeeeetttthhhhiiiinnnngggg ffffrrrroooommmm tttthhhheeee ccccoooommmmppppiiiilllleeeerrrr SYNOPSIS DESCRIPTION Page 52 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) lllliiiibbbb ---- mmmmaaaannnniiiippppuuuullllaaaatttteeee @@@@IIIINNNNCCCC at compile time SYNOPSIS DESCRIPTION ADDING DIRECTORIES TO @INC DELETING DIRECTORIES FROM @INC RESTORING ORIGINAL @INC SEE ALSO AUTHOR llllooooccccaaaalllleeee ---- PPPPeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo uuuusssseeee aaaannnndddd aaaavvvvooooiiiidddd PPPPOOOOSSSSIIIIXXXX llllooooccccaaaalllleeeessss ffffoooorrrr bbbbuuuuiiiilllltttt----iiiinnnn ooooppppeeeerrrraaaattttiiiioooonnnnssss SYNOPSIS DESCRIPTION oooovvvveeeerrrrllllooooaaaadddd ---- PPPPaaaacccckkkkaaaaggggeeee ffffoooorrrr oooovvvveeeerrrrllllooooaaaaddddiiiinnnngggg ppppeeeerrrrllll ooooppppeeeerrrraaaattttiiiioooonnnnssss SYNOPSIS CAVEAT SCRIPTOR DESCRIPTION Declaration of overloaded functions Calling Conventions for Binary Operations FALSE, TRUE, undef Calling Conventions for Unary Operations Overloadable Operations _A_r_i_t_h_m_e_t_i_c _o_p_e_r_a_t_i_o_n_s, _C_o_m_p_a_r_i_s_o_n _o_p_e_r_a_t_i_o_n_s, _B_i_t _o_p_e_r_a_t_i_o_n_s, _I_n_c_r_e_m_e_n_t _a_n_d _d_e_c_r_e_m_e_n_t, _T_r_a_n_s_c_e_n_d_e_n_t_a_l _f_u_n_c_t_i_o_n_s, _B_o_o_l_e_a_n, _s_t_r_i_n_g _a_n_d _n_u_m_e_r_i_c _c_o_n_v_e_r_s_i_o_n, _S_p_e_c_i_a_l Inheritance and overloading Strings as values of use overload directive, Overloading of an operation is inherited by derived classes SPECIAL SYMBOLS FOR use overload Page 53 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Last Resort Fallback undef, TRUE, defined, but FALSE Copy Constructor EEEExxxxaaaammmmpppplllleeee MAGIC AUTOGENERATION _A_s_s_i_g_n_m_e_n_t _f_o_r_m_s _o_f _a_r_i_t_h_m_e_t_i_c _o_p_e_r_a_t_i_o_n_s, _C_o_n_v_e_r_s_i_o_n _o_p_e_r_a_t_i_o_n_s, _I_n_c_r_e_m_e_n_t _a_n_d _d_e_c_r_e_m_e_n_t, abs($a), _U_n_a_r_y _m_i_n_u_s, _N_e_g_a_t_i_o_n, _C_o_n_c_a_t_e_n_a_t_i_o_n, _C_o_m_p_a_r_i_s_o_n _o_p_e_r_a_t_i_o_n_s, _C_o_p_y _o_p_e_r_a_t_o_r WARNING Run-time Overloading Public functions _o_v_e_r_l_o_a_d::_S_t_r_V_a_l(arg), _o_v_e_r_l_o_a_d::_O_v_e_r_l_o_a_d_e_d(arg), _o_v_e_r_l_o_a_d::_M_e_t_h_o_d(obj,op) Overloading constants integer, float, binary, q, qr IMPLEMENTATION AUTHOR DIAGNOSTICS BUGS ssssiiiiggggttttrrrraaaapppp ---- PPPPeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo eeeennnnaaaabbbblllleeee ssssiiiimmmmpppplllleeee ssssiiiiggggnnnnaaaallll hhhhaaaannnnddddlllliiiinnnngggg SYNOPSIS DESCRIPTION OPTIONS SIGNAL HANDLERS ssssttttaaaacccckkkk----ttttrrrraaaacccceeee, ddddiiiieeee, hhhhaaaannnnddddlllleeeerrrr _y_o_u_r-_h_a_n_d_l_e_r SIGNAL LISTS nnnnoooorrrrmmmmaaaallll----ssssiiiiggggnnnnaaaallllssss, eeeerrrrrrrroooorrrr----ssssiiiiggggnnnnaaaallllssss, oooolllldddd----iiiinnnntttteeeerrrrffffaaaacccceeee----ssssiiiiggggnnnnaaaallllssss OTHER uuuunnnnttttrrrraaaappppppppeeeedddd, aaaannnnyyyy, _s_i_g_n_a_l, _n_u_m_b_e_r EXAMPLES Page 54 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) ssssttttrrrriiiicccctttt ---- PPPPeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo rrrreeeessssttttrrrriiiicccctttt uuuunnnnssssaaaaffffeeee ccccoooonnnnssssttttrrrruuuuccccttttssss SYNOPSIS DESCRIPTION strict refs, strict vars, strict subs ssssuuuubbbbssss ---- PPPPeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo pppprrrreeeeddddeeeeccccllllaaaarrrreeee ssssuuuubbbb nnnnaaaammmmeeeessss SYNOPSIS DESCRIPTION vvvvaaaarrrrssss ---- PPPPeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo pppprrrreeeeddddeeeeccccllllaaaarrrreeee gggglllloooobbbbaaaallll vvvvaaaarrrriiiiaaaabbbblllleeee nnnnaaaammmmeeeessss SYNOPSIS DESCRIPTION MMMMOOOODDDDUUUULLLLEEEE DDDDOOOOCCCCUUUUMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN AAAAnnnnyyyyDDDDBBBBMMMM____FFFFiiiilllleeee ---- pppprrrroooovvvviiiiddddeeee ffffrrrraaaammmmeeeewwwwoooorrrrkkkk ffffoooorrrr mmmmuuuullllttttiiiipppplllleeee DDDDBBBBMMMMssss SYNOPSIS DESCRIPTION DBM Comparisons [0], [1], [2], [3] SEE ALSO AAAAuuuuttttooooLLLLooooaaaaddddeeeerrrr ---- llllooooaaaadddd ssssuuuubbbbrrrroooouuuuttttiiiinnnneeeessss oooonnnnllllyyyy oooonnnn ddddeeeemmmmaaaannnndddd SYNOPSIS DESCRIPTION Subroutine Stubs Using AAAAuuuuttttooooLLLLooooaaaaddddeeeerrrr's AUTOLOAD Subroutine Overriding AAAAuuuuttttooooLLLLooooaaaaddddeeeerrrr's AUTOLOAD Subroutine Package Lexicals AAAAuuuuttttooooLLLLooooaaaaddddeeeerrrr vs. SSSSeeeellllffffLLLLooooaaaaddddeeeerrrr CAVEATS SEE ALSO Page 55 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) AAAAuuuuttttooooSSSSpppplllliiiitttt ---- sssspppplllliiiitttt aaaa ppppaaaacccckkkkaaaaggggeeee ffffoooorrrr aaaauuuuttttoooollllooooaaaaddddiiiinnnngggg SYNOPSIS DESCRIPTION $keep, $check, $modtime Multiple packages DIAGNOSTICS BBBB ---- TTTThhhheeee PPPPeeeerrrrllll CCCCoooommmmppppiiiilllleeeerrrr SYNOPSIS DESCRIPTION OVERVIEW OF CLASSES SV-RELATED CLASSES B::SV METHODS REFCNT, FLAGS B::IV METHODS IV, IVX, needs64bits, packiv B::NV METHODS NV, NVX B::RV METHODS RV B::PV METHODS PV B::PVMG METHODS MAGIC, SvSTASH B::MAGIC METHODS MOREMAGIC, PRIVATE, TYPE, FLAGS, OBJ, PTR B::PVLV METHODS TARGOFF, TARGLEN, TYPE, TARG B::BM METHODS USEFUL, PREVIOUS, RARE, TABLE B::GV METHODS NAME, STASH, SV, IO, FORM, AV, HV, EGV, CV, CVGEN, LINE, FILEGV, GvREFCNT, FLAGS Page 56 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) B::IO METHODS LINES, PAGE, PAGE_LEN, LINES_LEFT, TOP_NAME, TOP_GV, FMT_NAME, FMT_GV, BOTTOM_NAME, BOTTOM_GV, SUBPROCESS, IoTYPE, IoFLAGS B::AV METHODS FILL, MAX, OFF, ARRAY, AvFLAGS B::CV METHODS STASH, START, ROOT, GV, FILEGV, DEPTH, PADLIST, OUTSIDE, XSUB, XSUBANY B::HV METHODS FILL, MAX, KEYS, RITER, NAME, PMROOT, ARRAY OP-RELATED CLASSES B::OP METHODS next, sibling, ppaddr, desc, targ, type, seq, flags, private B::UNOP METHOD first B::BINOP METHOD last B::LOGOP METHOD other B::CONDOP METHODS true, false B::LISTOP METHOD children B::PMOP METHODS pmreplroot, pmreplstart, pmnext, pmregexp, pmflags, pmpermflags, precomp B::SVOP METHOD sv B::GVOP METHOD gv B::PVOP METHOD pv B::LOOP METHODS redoop, nextop, lastop Page 57 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) B::COP METHODS label, stash, filegv, cop_seq, arybase, line FUNCTIONS EXPORTED BY B main_cv, main_root, main_start, comppadlist, sv_undef, sv_yes, sv_no, _w_a_l_k_o_p_t_r_e_e(OP, METHOD), _w_a_l_k_o_p_t_r_e_e__d_e_b_u_g(DEBUG), _w_a_l_k_s_y_m_t_a_b_l_e(SYMREF, METHOD, RECURSE), _s_v_r_e_f__2_o_b_j_e_c_t(SV), _p_p_n_a_m_e(OPNUM), _h_a_s_h(STR), _c_a_s_t__I_3_2(I), minus_c, _c_s_t_r_i_n_g(STR), _c_l_a_s_s(OBJ), threadsv_names, _b_y_t_e_l_o_a_d__f_h(FILEHANDLE) AUTHOR BBBB::::::::AAAAssssmmmmddddaaaattttaaaa ---- AAAAuuuuttttooooggggeeeennnneeeerrrraaaatttteeeedddd ddddaaaattttaaaa aaaabbbboooouuuutttt PPPPeeeerrrrllll ooooppppssss,,,, uuuusssseeeedddd ttttoooo ggggeeeennnneeeerrrraaaatttteeee bbbbyyyytttteeeeccccooooddddeeee SYNOPSIS DESCRIPTION AUTHOR BBBB::::::::AAAAsssssssseeeemmmmbbbblllleeeerrrr ---- AAAAsssssssseeeemmmmbbbblllleeee PPPPeeeerrrrllll bbbbyyyytttteeeeccccooooddddeeee SYNOPSIS DESCRIPTION AUTHOR BBBB::::::::BBBBbbbblllloooocccckkkk ---- WWWWaaaallllkkkk bbbbaaaassssiiiicccc bbbblllloooocccckkkkssss SYNOPSIS DESCRIPTION AUTHOR BBBB::::::::BBBByyyytttteeeeccccooooddddeeee ---- PPPPeeeerrrrllll ccccoooommmmppppiiiilllleeeerrrr''''ssss bbbbyyyytttteeeeccccooooddddeeee bbbbaaaacccckkkkeeeennnndddd SYNOPSIS DESCRIPTION OPTIONS ----ooooffffiiiilllleeeennnnaaaammmmeeee, --------, ----ffff, ----ffffccccoooommmmpppprrrreeeessssssss----nnnnuuuullllllllooooppppssss, ----ffffoooommmmiiiitttt----sssseeeeqqqquuuueeeennnncccceeee---- nnnnuuuummmmbbbbeeeerrrrssss, ----ffffbbbbyyyyppppaaaassssssss----nnnnuuuullllllllooooppppssss, ----ffffssssttttrrrriiiipppp----ssssyyyynnnnttttaaaaxxxx----ttttrrrreeeeeeee, ----OOOOnnnn, ----DDDD, ----DDDDoooo, ----DDDDbbbb, ----DDDDaaaa, ----DDDDCCCC, ----SSSS, ----mmmm BUGS Page 58 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) AUTHOR BBBB::::::::CCCC ---- PPPPeeeerrrrllll ccccoooommmmppppiiiilllleeeerrrr''''ssss CCCC bbbbaaaacccckkkkeeeennnndddd SYNOPSIS DESCRIPTION OPTIONS ----ooooffffiiiilllleeeennnnaaaammmmeeee, ----vvvv, --------, ----uuuuPPPPaaaacccckkkknnnnaaaammmmeeee, ----DDDD, ----DDDDoooo, ----DDDDcccc, ----DDDDAAAA, ----DDDDCCCC, ----DDDDMMMM, ----ffff, ----ffffccccoooogggg, ----ffffnnnnoooo----ccccoooogggg, ----OOOOnnnn EXAMPLES BUGS AUTHOR BBBB::::::::CCCCCCCC ---- PPPPeeeerrrrllll ccccoooommmmppppiiiilllleeeerrrr''''ssss ooooppppttttiiiimmmmiiiizzzzeeeedddd CCCC ttttrrrraaaannnnssssllllaaaattttiiiioooonnnn bbbbaaaacccckkkkeeeennnndddd SYNOPSIS DESCRIPTION OPTIONS ----ooooffffiiiilllleeeennnnaaaammmmeeee, ----vvvv, --------, ----uuuuPPPPaaaacccckkkknnnnaaaammmmeeee, ----mmmmMMMMoooodddduuuulllleeeennnnaaaammmmeeee, ----DDDD, ----DDDDrrrr, ----DDDDOOOO, ----DDDDssss, ----DDDDpppp, ----DDDDqqqq, ----DDDDllll, ----DDDDtttt, ----ffff, ----ffffffffrrrreeeeeeeettttmmmmppppssss----eeeeaaaacccchhhh----bbbbbbbblllloooocccckkkk, ----ffffffffrrrreeeeeeeettttmmmmppppssss----eeeeaaaacccchhhh----lllloooooooopppp, ----ffffoooommmmiiiitttt----ttttaaaaiiiinnnntttt, ----OOOOnnnn EXAMPLES BUGS DIFFERENCES Loops Context of ".." Arithmetic Deprecated features AUTHOR BBBB::::::::DDDDeeeebbbbuuuugggg ---- WWWWaaaallllkkkk PPPPeeeerrrrllll ssssyyyynnnnttttaaaaxxxx ttttrrrreeeeeeee,,,, pppprrrriiiinnnnttttiiiinnnngggg ddddeeeebbbbuuuugggg iiiinnnnffffoooo aaaabbbboooouuuutttt ooooppppssss SYNOPSIS DESCRIPTION Page 59 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) AUTHOR BBBB::::::::DDDDeeeeppppaaaarrrrsssseeee ---- PPPPeeeerrrrllll ccccoooommmmppppiiiilllleeeerrrr bbbbaaaacccckkkkeeeennnndddd ttttoooo pppprrrroooodddduuuucccceeee ppppeeeerrrrllll ccccooooddddeeee SYNOPSIS DESCRIPTION OPTIONS ----pppp, ----uuuu_P_A_C_K_A_G_E, ----llll, ----ssss_L_E_T_T_E_R_S, CCCC BUGS AUTHOR BBBB::::::::DDDDiiiissssaaaasssssssseeeemmmmbbbblllleeeerrrr ---- DDDDiiiissssaaaasssssssseeeemmmmbbbblllleeee PPPPeeeerrrrllll bbbbyyyytttteeeeccccooooddddeeee SYNOPSIS DESCRIPTION AUTHOR BBBB::::::::LLLLiiiinnnntttt ---- PPPPeeeerrrrllll lllliiiinnnntttt SYNOPSIS DESCRIPTION OPTIONS AND LINT CHECKS ccccoooonnnntttteeeexxxxtttt, iiiimmmmpppplllliiiicccciiiitttt----rrrreeeeaaaadddd and iiiimmmmpppplllliiiicccciiiitttt----wwwwrrrriiiitttteeee, ddddoooollllllllaaaarrrr---- uuuunnnnddddeeeerrrrssssccccoooorrrreeee, pppprrrriiiivvvvaaaatttteeee----nnnnaaaammmmeeeessss, uuuunnnnddddeeeeffffiiiinnnneeeedddd----ssssuuuubbbbssss, rrrreeeeggggeeeexxxxpppp----vvvvaaaarrrriiiiaaaabbbblllleeeessss, aaaallllllll, nnnnoooonnnneeee NON LINT-CHECK OPTIONS ----uuuu PPPPaaaacccckkkkaaaaggggeeee BUGS AUTHOR BBBB::::::::OOOO,,,, OOOO ---- GGGGeeeennnneeeerrrriiiicccc iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll CCCCoooommmmppppiiiilllleeeerrrr bbbbaaaacccckkkkeeeennnnddddssss SYNOPSIS DESCRIPTION CONVENTIONS IMPLEMENTATION Page 60 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) AUTHOR BBBB::::::::SSSShhhhoooowwwwlllleeeexxxx ---- SSSShhhhoooowwww lllleeeexxxxiiiiccccaaaallll vvvvaaaarrrriiiiaaaabbbblllleeeessss uuuusssseeeedddd iiiinnnn ffffuuuunnnnccccttttiiiioooonnnnssss oooorrrr ffffiiiilllleeeessss SYNOPSIS DESCRIPTION AUTHOR BBBB::::::::SSSSttttaaaacccckkkkoooobbbbjjjj ---- HHHHeeeellllppppeeeerrrr mmmmoooodddduuuulllleeee ffffoooorrrr CCCCCCCC bbbbaaaacccckkkkeeeennnndddd SYNOPSIS DESCRIPTION AUTHOR BBBB::::::::TTTTeeeerrrrsssseeee ---- WWWWaaaallllkkkk PPPPeeeerrrrllll ssssyyyynnnnttttaaaaxxxx ttttrrrreeeeeeee,,,, pppprrrriiiinnnnttttiiiinnnngggg tttteeeerrrrsssseeee iiiinnnnffffoooo aaaabbbboooouuuutttt ooooppppssss SYNOPSIS DESCRIPTION AUTHOR BBBB::::::::XXXXrrrreeeeffff ---- GGGGeeeennnneeeerrrraaaatttteeeessss ccccrrrroooossssssss rrrreeeeffffeeeerrrreeeennnncccceeee rrrreeeeppppoooorrrrttttssss ffffoooorrrr PPPPeeeerrrrllll pppprrrrooooggggrrrraaaammmmssss SYNOPSIS DESCRIPTION OPTIONS -oFILENAME, -r, -D[tO] BUGS AUTHOR BBBBeeeennnncccchhhhmmmmaaaarrrrkkkk ---- bbbbeeeennnncccchhhhmmmmaaaarrrrkkkk rrrruuuunnnnnnnniiiinnnngggg ttttiiiimmmmeeeessss ooooffff ccccooooddddeeee SYNOPSIS DESCRIPTION Methods new, debug Page 61 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Standard Exports _t_i_m_e_i_t(COUNT, CODE), timethis ( COUNT, CODE, [ TITLE, [ STYLE ]] ), timethese ( COUNT, CODEHASHREF, [ STYLE ] ), timediff ( T1, T2 ), timestr ( TIMEDIFF, [ STYLE, [ FORMAT ] ] ) Optional Exports clearcache ( COUNT ), clearallcache ( ), disablecache ( ), enablecache ( ) NOTES INHERITANCE CAVEATS AUTHORS MODIFICATION HISTORY CCCCGGGGIIII ---- SSSSiiiimmmmpppplllleeee CCCCoooommmmmmmmoooonnnn GGGGaaaatttteeeewwwwaaaayyyy IIIInnnntttteeeerrrrffffaaaacccceeee CCCCllllaaaassssssss SYNOPSIS ABSTRACT DESCRIPTION PROGRAMMING STYLE CALLING CGI.PM ROUTINES 1. Use another name for the argument, if one is available. Forexample, -value is an alias for -values, 2. Change the capitalization, e.g. -Values, 3. Put quotes around the argument name, e.g. '-values' CREATING A NEW QUERY OBJECT (OBJECT-ORIENTED STYLE): CREATING A NEW QUERY OBJECT FROM AN INPUT FILE FETCHING A LIST OF KEYWORDS FROM THE QUERY: FETCHING THE NAMES OF ALL THE PARAMETERS PASSED TO YOUR SCRIPT: FETCHING THE VALUE OR VALUES OF A SINGLE NAMED PARAMETER: SETTING THE VALUE(S) OF A NAMED PARAMETER: APPENDING ADDITIONAL VALUES TO A NAMED PARAMETER: IMPORTING ALL PARAMETERS INTO A NAMESPACE: Page 62 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) DELETING A PARAMETER COMPLETELY: DELETING ALL PARAMETERS: DIRECT ACCESS TO THE PARAMETER LIST: SAVING THE STATE OF THE SCRIPT TO A FILE: USING THE FUNCTION-ORIENTED INTERFACE ::::ccccggggiiii, ::::ffffoooorrrrmmmm, ::::hhhhttttmmmmllll2222, ::::hhhhttttmmmmllll3333, ::::nnnneeeettttssssccccaaaappppeeee, ::::hhhhttttmmmmllll, ::::ssssttttaaaannnnddddaaaarrrrdddd, ::::aaaallllllll PRAGMAS -any, -compile, -nph, -autoload, -no_debug, -private_tempfiles GENERATING DYNAMIC DOCUMENTS CREATING A STANDARD HTTP HEADER: GENERATING A REDIRECTION HEADER CREATING THE HTML DOCUMENT HEADER PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss::::, 4, 5, 6.. ENDING THE HTML DOCUMENT: CREATING A SELF-REFERENCING URL THAT PRESERVES STATE INFORMATION: OBTAINING THE SCRIPT'S URL ----aaaabbbbssssoooolllluuuutttteeee, ----rrrreeeellllaaaattttiiiivvvveeee, ----ffffuuuullllllll, ----ppppaaaatttthhhh (----ppppaaaatttthhhh____iiiinnnnffffoooo), ----qqqquuuueeeerrrryyyy (----qqqquuuueeeerrrryyyy____ssssttttrrrriiiinnnngggg) CREATING STANDARD HTML ELEMENTS: PROVIDING ARGUMENTS TO HTML SHORTCUTS THE DISTRIBUTIVE PROPERTY OF HTML SHORTCUTS HTML SHORTCUTS AND LIST INTERPOLATION NON-STANDARD HTML SHORTCUTS CREATING FILL-OUT FORMS: CREATING AN ISINDEX TAG STARTING AND ENDING A FORM aaaapppppppplllliiiiccccaaaattttiiiioooonnnn////xxxx----wwwwwwwwwwww----ffffoooorrrrmmmm----uuuurrrrlllleeeennnnccccooooddddeeeedddd, mmmmuuuullllttttiiiippppaaaarrrrtttt////ffffoooorrrrmmmm----ddddaaaattttaaaa CREATING A TEXT FIELD PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss Page 63 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) CREATING A BIG TEXT FIELD CREATING A PASSWORD FIELD CREATING A FILE UPLOAD FIELD PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss CREATING A POPUP MENU CREATING A SCROLLING LIST PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss:::: CREATING A GROUP OF RELATED CHECKBOXES PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss:::: CREATING A STANDALONE CHECKBOX PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss:::: CREATING A RADIO BUTTON GROUP PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss:::: CREATING A SUBMIT BUTTON PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss:::: CREATING A RESET BUTTON CREATING A DEFAULT BUTTON CREATING A HIDDEN FIELD PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss:::: CREATING A CLICKABLE IMAGE BUTTON PPPPaaaarrrraaaammmmeeeetttteeeerrrrssss::::, 3.The third option (-align, optional) is an alignment type, and may be TOP, BOTTOM or MIDDLE CREATING A JAVASCRIPT ACTION BUTTON NETSCAPE COOKIES 1. an expiration time, 2. a domain, 3. a path, 4. a "secure" flag, ----nnnnaaaammmmeeee, ----vvvvaaaalllluuuueeee, ----ppppaaaatttthhhh, ----ddddoooommmmaaaaiiiinnnn, ----eeeexxxxppppiiiirrrreeeessss, ----sssseeeeccccuuuurrrreeee WORKING WITH NETSCAPE FRAMES 1. Create a <Frameset> document, 2. Specify the destination for the document in the HTTP header, 3. Specify the destination for the document in the <FORM> tag LIMITED SUPPORT FOR CASCADING STYLE SHEETS DEBUGGING DUMPING OUT ALL THE NAME/VALUE PAIRS Page 64 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) FETCHING ENVIRONMENT VARIABLES aaaacccccccceeeepppptttt(((()))), rrrraaaawwww____ccccooooooookkkkiiiieeee(((()))), uuuusssseeeerrrr____aaaaggggeeeennnntttt(((()))), ppppaaaatttthhhh____iiiinnnnffffoooo(((()))), ppppaaaatttthhhh____ttttrrrraaaannnnssssllllaaaatttteeeedddd(((()))), rrrreeeemmmmooootttteeee____hhhhoooosssstttt(((()))), ssssccccrrrriiiipppptttt____nnnnaaaammmmeeee(((())))Return the script name as a partial URL, for self-refering scripts, rrrreeeeffffeeeerrrreeeerrrr(((()))), aaaauuuutttthhhh____ttttyyyyppppeeee (((()))), sssseeeerrrrvvvveeeerrrr____nnnnaaaammmmeeee (((()))), vvvviiiirrrrttttuuuuaaaallll____hhhhoooosssstttt (((()))), sssseeeerrrrvvvveeeerrrr____ssssooooffffttttwwwwaaaarrrreeee (((()))), rrrreeeemmmmooootttteeee____uuuusssseeeerrrr (((()))), uuuusssseeeerrrr____nnnnaaaammmmeeee (((()))), rrrreeeeqqqquuuueeeesssstttt____mmmmeeeetttthhhhoooodddd(((()))) USING NPH SCRIPTS In the uuuusssseeee statement, By calling the nnnnpppphhhh(((()))) method:, By using ----nnnnpppphhhh parameters in the hhhheeeeaaaaddddeeeerrrr(((()))) and rrrreeeeddddiiiirrrreeeecccctttt(((()))) statements: Server Push _m_u_l_t_i_p_a_r_t__i_n_i_t() _m_u_l_t_i_p_a_r_t__i_n_i_t(-boundary=>$boundary);, _m_u_l_t_i_p_a_r_t__s_t_a_r_t(), _m_u_l_t_i_p_a_r_t__e_n_d() Avoiding Denial of Service Attacks $$$$CCCCGGGGIIII::::::::PPPPOOOOSSSSTTTT____MMMMAAAAXXXX, $$$$CCCCGGGGIIII::::::::DDDDIIIISSSSAAAABBBBLLLLEEEE____UUUUPPPPLLLLOOOOAAAADDDDSSSS, 1111.... OOOOnnnn aaaa ssssccccrrrriiiipppptttt----bbbbyyyy---- ssssccccrrrriiiipppptttt bbbbaaaassssiiiissss, 2222.... GGGGlllloooobbbbaaaallllllllyyyy ffffoooorrrr aaaallllllll ssssccccrrrriiiippppttttssss COMPATIBILITY WITH CGI-LIB.PL AUTHOR INFORMATION CREDITS Matt Heffron (heffron@falstaff.css.beckman.com), James Taylor (james.taylor@srs.gov), Scott Anguish <sanguish@digifix.com>, Mike Jewell (mlj3u@virginia.edu), Timothy Shimmin (tes@kbs.citri.edu.au), Joergen Haegg (jh@axis.se), Laurent Delfosse (delfosse@csgrad1.cs.wvu.edu), Richard Resnick (applepi1@aol.com), Craig Bishop (csb@barwonwater.vic.gov.au), Tony Curtis (tc@vcpc.univie.ac.at), Tim Bunce (Tim.Bunce@ig.co.uk), Tom Christiansen (tchrist@convex.com), Andreas Koenig (k@franz.ww.TU-Berlin.DE), Tim MacKenzie (Tim.MacKenzie@fulcrum.com.au), Kevin B. Hendricks (kbhend@dogwood.tyler.wm.edu), Stephen Dahmen (joyfire@inxpress.net), Ed Jordan (ed@fidalgo.net), David Alan Pisoni (david@cnation.com), Doug MacEachern (dougm@opengroup.org), Robin Houston (robin@oneworld.org), ...and many many more.. A COMPLETE EXAMPLE OF A SIMPLE FORM-BASED SCRIPT BUGS SEE ALSO Page 65 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) CCCCGGGGIIII::::::::AAAAppppaaaacccchhhheeee ---- MMMMaaaakkkkeeee tttthhhhiiiinnnnggggssss wwwwoooorrrrkkkk wwwwiiiitttthhhh CCCCGGGGIIII....ppppmmmm aaaaggggaaaaiiiinnnnsssstttt PPPPeeeerrrrllll---- AAAAppppaaaacccchhhheeee AAAAPPPPIIII SYNOPSIS DESCRIPTION NOTE 1 NOTE 2 SEE ALSO AUTHOR CCCCGGGGIIII::::::::CCCCaaaarrrrpppp,,,, CCCCGGGGIIII::::::::CCCCaaaarrrrpppp - CGI routines for writing to the HTTPD (or other) error log SYNOPSIS DESCRIPTION REDIRECTING ERROR MESSAGES MAKING PERL ERRORS APPEAR IN THE BROWSER WINDOW Changing the default message CHANGE LOG AUTHORS SEE ALSO CCCCGGGGIIII::::::::CCCCooooooookkkkiiiieeee ---- IIIInnnntttteeeerrrrffffaaaacccceeee ttttoooo NNNNeeeettttssssccccaaaappppeeee CCCCooooooookkkkiiiieeeessss SYNOPSIS DESCRIPTION USING CGI::Cookie 1111.... eeeexxxxppppiiiirrrraaaattttiiiioooonnnn ddddaaaatttteeee, 2222.... ddddoooommmmaaaaiiiinnnn, 3333.... ppppaaaatttthhhh, 4444.... sssseeeeccccuuuurrrreeee ffffllllaaaagggg Creating New Cookies Sending the Cookie to the Browser Recovering Previous Cookies Manipulating Cookies nnnnaaaammmmeeee(((()))), vvvvaaaalllluuuueeee(((()))), ddddoooommmmaaaaiiiinnnn(((()))), ppppaaaatttthhhh(((()))), eeeexxxxppppiiiirrrreeeessss(((()))) Page 66 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) AUTHOR INFORMATION BUGS SEE ALSO CCCCGGGGIIII::::::::FFFFaaaasssstttt ---- CCCCGGGGIIII IIIInnnntttteeeerrrrffffaaaacccceeee ffffoooorrrr FFFFaaaasssstttt CCCCGGGGIIII SYNOPSIS DESCRIPTION OTHER PIECES OF THE PUZZLE WRITING FASTCGI PERL SCRIPTS INSTALLING FASTCGI SCRIPTS USING FASTCGI SCRIPTS AS CGI SCRIPTS CAVEATS AUTHOR INFORMATION BUGS SEE ALSO CCCCGGGGIIII::::::::PPPPuuuusssshhhh ---- SSSSiiiimmmmpppplllleeee IIIInnnntttteeeerrrrffffaaaacccceeee ttttoooo SSSSeeeerrrrvvvveeeerrrr PPPPuuuusssshhhh SYNOPSIS DESCRIPTION USING CGI::Push -next_page, -last_page, -type, -delay, -cookie, -target, -expires Heterogeneous Pages Changing the Page Delay on the Fly INSTALLING CGI::Push SCRIPTS CAVEATS AUTHOR INFORMATION BUGS SEE ALSO Page 67 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) CCCCGGGGIIII::::::::SSSSwwwwiiiittttcccchhhh ---- TTTTrrrryyyy mmmmoooorrrreeee tttthhhhaaaannnn oooonnnneeee ccccoooonnnnssssttttrrrruuuuccccttttoooorrrrssss aaaannnndddd rrrreeeettttuuuurrrrnnnn tttthhhheeee ffffiiiirrrrsssstttt oooobbbbjjjjeeeecccctttt aaaavvvvaaaaiiiillllaaaabbbblllleeee SYNOPSIS DESCRIPTION SEE ALSO AUTHOR CCCCPPPPAAAANNNN ---- qqqquuuueeeerrrryyyy,,,, ddddoooowwwwnnnnllllooooaaaadddd aaaannnndddd bbbbuuuuiiiilllldddd ppppeeeerrrrllll mmmmoooodddduuuulllleeeessss ffffrrrroooommmm CCCCPPPPAAAANNNN ssssiiiitttteeeessss SYNOPSIS DESCRIPTION Interactive Mode Searching for authors, bundles, distribution files and modules, make, test, install, clean modules or distributions, readme, look module or distribution, Signals CPAN::Shell autobundle recompile The four CPAN::* Classes: Author, Bundle, Module, Distribution Programmer's interface _e_x_p_a_n_d($type,@things), Programming Examples Methods in the four Cache Manager Bundles Prerequisites Finding packages and VERSION Debugging Floppy, Zip, and all that Jazz CONFIGURATION o conf <scalar option>, o conf <scalar option> <value>, o conf <list option>, o conf <list option> [shift|pop], o conf Page 68 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) <list option> [unshift|push|splice] <list> CD-ROM support SECURITY EXPORT BUGS AUTHOR SEE ALSO CCCCPPPPAAAANNNN::::::::FFFFiiiirrrrssssttttTTTTiiiimmmmeeee ---- UUUUttttiiiilllliiiittttyyyy ffffoooorrrr CCCCPPPPAAAANNNN::::::::CCCCoooonnnnffffiiiigggg ffffiiiilllleeee IIIInnnniiiittttiiiiaaaalllliiiizzzzaaaattttiiiioooonnnn SYNOPSIS DESCRIPTION CCCCPPPPAAAANNNNooooxxxx,,,, CCCCPPPPAAAANNNN::::::::NNNNooooxxxx ---- WWWWrrrraaaappppppppeeeerrrr aaaarrrroooouuuunnnndddd CCCCPPPPAAAANNNN....ppppmmmm wwwwiiiitttthhhhoooouuuutttt uuuussssiiiinnnngggg aaaannnnyyyy XXXXSSSS mmmmoooodddduuuulllleeee SYNOPSIS DESCRIPTION SEE ALSO CCCCaaaarrrrpppp,,,, ccccaaaarrrrpppp ---- wwwwaaaarrrrnnnn ooooffff eeeerrrrrrrroooorrrrssss ((((ffffrrrroooommmm ppppeeeerrrrssssppppeeeeccccttttiiiivvvveeee ooooffff ccccaaaalllllllleeeerrrr)))) SYNOPSIS DESCRIPTION Forcing a Stack Trace CCCCllllaaaassssssss::::::::SSSSttttrrrruuuucccctttt ---- ddddeeeeccccllllaaaarrrreeee ssssttttrrrruuuucccctttt----lllliiiikkkkeeee ddddaaaattttaaaattttyyyyppppeeeessss aaaassss PPPPeeeerrrrllll ccccllllaaaasssssssseeeessss SYNOPSIS DESCRIPTION The struct() function Element Types and Accessor Methods Scalar ('$' or '*$'), Array ('@' or '*@'), Hash ('%' or '*%'), Class ('Class_Name' or '*Class_Name') Page 69 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) EXAMPLES Example 1, Example 2 Author and Modification History CCCCwwwwdddd,,,, ggggeeeettttccccwwwwdddd ---- ggggeeeetttt ppppaaaatttthhhhnnnnaaaammmmeeee ooooffff ccccuuuurrrrrrrreeeennnntttt wwwwoooorrrrkkkkiiiinnnngggg ddddiiiirrrreeeeccccttttoooorrrryyyy SYNOPSIS DESCRIPTION DDDDBBBB____FFFFiiiilllleeee ---- PPPPeeeerrrrllll5555 aaaacccccccceeeessssssss ttttoooo BBBBeeeerrrrkkkkeeeelllleeeeyyyy DDDDBBBB vvvveeeerrrrssssiiiioooonnnn 1111....xxxx SYNOPSIS DESCRIPTION DDDDBBBB____HHHHAAAASSSSHHHH, DDDDBBBB____BBBBTTTTRRRREEEEEEEE, DDDDBBBB____RRRREEEECCCCNNNNOOOO Using DB_File with Berkeley DB version 2 Interface to Berkeley DB Opening a Berkeley DB Database File Default Parameters In Memory Databases DB_HASH A Simple Example DB_BTREE Changing the BTREE sort order Handling Duplicate Keys The get_dup() Method Matching Partial Keys DB_RECNO The 'bval' Option A Simple Example Extra Methods $$$$XXXX---->>>>ppppuuuusssshhhh((((lllliiiisssstttt)))) ;;;;, $$$$vvvvaaaalllluuuueeee ==== $$$$XXXX---->>>>ppppoooopppp ;;;;, $$$$XXXX---->>>>sssshhhhiiiifffftttt, $$$$XXXX---->>>>uuuunnnnsssshhhhiiiifffftttt((((lllliiiisssstttt)))) ;;;;, $$$$XXXX---->>>>lllleeeennnnggggtttthhhh Page 70 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Another Example THE API INTERFACE $$$$ssssttttaaaattttuuuussss ==== $$$$XXXX---->>>>ggggeeeetttt(((($$$$kkkkeeeeyyyy,,,, $$$$vvvvaaaalllluuuueeee [[[[,,,, $$$$ffffllllaaaaggggssss]]]])))) ;;;;, $$$$ssssttttaaaattttuuuussss ==== $$$$XXXX---->>>>ppppuuuutttt(((($$$$kkkkeeeeyyyy,,,, $$$$vvvvaaaalllluuuueeee [[[[,,,, $$$$ffffllllaaaaggggssss]]]])))) ;;;;, $$$$ssssttttaaaattttuuuussss ==== $$$$XXXX---->>>>ddddeeeellll(((($$$$kkkkeeeeyyyy [[[[,,,, $$$$ffffllllaaaaggggssss]]]])))) ;;;;, $$$$ssssttttaaaattttuuuussss ==== $$$$XXXX---->>>>ffffdddd ;;;;, $$$$ssssttttaaaattttuuuussss ==== $$$$XXXX---->>>>sssseeeeqqqq(((($$$$kkkkeeeeyyyy,,,, $$$$vvvvaaaalllluuuueeee,,,, $$$$ffffllllaaaaggggssss)))) ;;;;, $$$$ssssttttaaaattttuuuussss ==== $$$$XXXX---->>>>ssssyyyynnnncccc(((([[[[$$$$ffffllllaaaaggggssss]]]])))) ;;;; HINTS AND TIPS Locking Databases Sharing Databases With C Applications The untie() Gotcha COMMON QUESTIONS Why is there Perl source in my database? How do I store complex data structures with DB_File? What does "Invalid Argument" mean? What does "Bareword 'DB_File' not allowed" mean? HISTORY BUGS AVAILABILITY COPYRIGHT SEE ALSO AUTHOR DDDDaaaattttaaaa::::::::DDDDuuuummmmppppeeeerrrr ---- ssssttttrrrriiiinnnnggggiiiiffffiiiieeeedddd ppppeeeerrrrllll ddddaaaattttaaaa ssssttttrrrruuuuccccttttuuuurrrreeeessss,,,, ssssuuuuiiiittttaaaabbbblllleeee ffffoooorrrr bbbbooootttthhhh pppprrrriiiinnnnttttiiiinnnngggg aaaannnndddd eeeevvvvaaaallll SYNOPSIS DESCRIPTION Methods _P_A_C_K_A_G_E->_n_e_w(_A_R_R_A_Y_R_E_F [, _A_R_R_A_Y_R_E_F]), $_O_B_J->Dump _o_r _P_A_C_K_A_G_E->_D_u_m_p(_A_R_R_A_Y_R_E_F [, _A_R_R_A_Y_R_E_F]), $_O_B_J->Dumpxs _o_r _P_A_C_K_A_G_E->_D_u_m_p_x_s(_A_R_R_A_Y_R_E_F [, _A_R_R_A_Y_R_E_F]), $_O_B_J->_S_e_e_n([_H_A_S_H_R_E_F]), $_O_B_J->_V_a_l_u_e_s([_A_R_R_A_Y_R_E_F]), $_O_B_J->_N_a_m_e_s([_A_R_R_A_Y_R_E_F]), $_O_B_J->Reset Page 71 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Functions _D_u_m_p_e_r(_L_I_S_T), _D_u_m_p_e_r_X(_L_I_S_T) Configuration Variables or Methods $Data::Dumper::Indent _o_r $_O_B_J->_I_n_d_e_n_t([_N_E_W_V_A_L]), $Data::Dumper::Purity _o_r $_O_B_J->_P_u_r_i_t_y([_N_E_W_V_A_L]), $Data::Dumper::Pad _o_r $_O_B_J->_P_a_d([_N_E_W_V_A_L]), $Data::Dumper::Varname _o_r $_O_B_J->_V_a_r_n_a_m_e([_N_E_W_V_A_L]), $Data::Dumper::Useqq _o_r $_O_B_J->_U_s_e_q_q([_N_E_W_V_A_L]), $Data::Dumper::Terse _o_r $_O_B_J->_T_e_r_s_e([_N_E_W_V_A_L]), $Data::Dumper::Freezer _o_r $_O_B_J->_F_r_e_e_z_e_r([_N_E_W_V_A_L]), $Data::Dumper::Toaster _o_r $_O_B_J->_T_o_a_s_t_e_r([_N_E_W_V_A_L]), $Data::Dumper::Deepcopy _o_r $_O_B_J->_D_e_e_p_c_o_p_y([_N_E_W_V_A_L]), $Data::Dumper::Quotekeys _o_r $_O_B_J->_Q_u_o_t_e_k_e_y_s([_N_E_W_V_A_L]), $Data::Dumper::Bless _o_r $_O_B_J->_B_l_e_s_s([_N_E_W_V_A_L]) Exports Dumper EXAMPLES BUGS AUTHOR VERSION SEE ALSO DDDDeeeevvvveeeellll::::::::SSSSeeeellllffffSSSSttttuuuubbbbbbbbeeeerrrr ---- ggggeeeennnneeeerrrraaaatttteeee ssssttttuuuubbbbssss ffffoooorrrr aaaa SSSSeeeellllffffLLLLooooaaaaddddiiiinnnngggg mmmmoooodddduuuulllleeee SYNOPSIS DESCRIPTION DDDDiiiirrrrHHHHaaaannnnddddlllleeee ---- ssssuuuuppppppppllllyyyy oooobbbbjjjjeeeecccctttt mmmmeeeetttthhhhooooddddssss ffffoooorrrr ddddiiiirrrreeeeccccttttoooorrrryyyy hhhhaaaannnnddddlllleeeessss SYNOPSIS DESCRIPTION EEEEnnnngggglllliiiisssshhhh ---- uuuusssseeee nnnniiiicccceeee EEEEnnnngggglllliiiisssshhhh ((((oooorrrr aaaawwwwkkkk)))) nnnnaaaammmmeeeessss ffffoooorrrr uuuuggggllllyyyy ppppuuuunnnnccccttttuuuuaaaattttiiiioooonnnn vvvvaaaarrrriiiiaaaabbbblllleeeessss SYNOPSIS DESCRIPTION Page 72 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) EEEEnnnnvvvv ---- ppppeeeerrrrllll mmmmoooodddduuuulllleeee tttthhhhaaaatttt iiiimmmmppppoooorrrrttttssss eeeennnnvvvviiiirrrroooonnnnmmmmeeeennnntttt vvvvaaaarrrriiiiaaaabbbblllleeeessss SYNOPSIS DESCRIPTION AUTHOR EEEExxxxppppoooorrrrtttteeeerrrr ---- IIIImmmmpppplllleeeemmmmeeeennnnttttssss ddddeeeeffffaaaauuuulllltttt iiiimmmmppppoooorrrrtttt mmmmeeeetttthhhhoooodddd ffffoooorrrr mmmmoooodddduuuulllleeeessss SYNOPSIS DESCRIPTION Selecting What To Export Specialised Import Lists Exporting without using Export's import method Module Version Checking Managing Unknown Symbols Tag Handling Utility Functions EEEExxxxttttUUUUttttiiiillllssss::::::::CCCCoooommmmmmmmaaaannnndddd ---- uuuuttttiiiilllliiiittttiiiieeeessss ttttoooo rrrreeeeppppllllaaaacccceeee ccccoooommmmmmmmoooonnnn UUUUNNNNIIIIXXXX ccccoooommmmmmmmaaaannnnddddssss iiiinnnn MMMMaaaakkkkeeeeffffiiiilllleeeessss eeeettttcccc.... SYNOPSIS DESCRIPTION cat, eqtime src dst, rm_f files..., rm_f files..., touch files .., mv source... destination, cp source... destination, chmod mode files.., mkpath directory.., test_f file BUGS SEE ALSO AUTHOR EEEExxxxttttUUUUttttiiiillllssss::::::::EEEEmmmmbbbbeeeedddd ---- UUUUttttiiiilllliiiittttiiiieeeessss ffffoooorrrr eeeemmmmbbbbeeeeddddddddiiiinnnngggg PPPPeeeerrrrllll iiiinnnn CCCC////CCCC++++++++ aaaapppppppplllliiiiccccaaaattttiiiioooonnnnssss SYNOPSIS DESCRIPTION @EXPORT Page 73 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) FUNCTIONS _x_s_i_n_i_t(), Examples, _l_d_o_p_t_s(), Examples, _p_e_r_l__i_n_c(), _c_c_f_l_a_g_s(), _c_c_d_l_f_l_a_g_s(), _c_c_o_p_t_s(), _x_s_i__h_e_a_d_e_r(), _x_s_i__p_r_o_t_o_s(@modules), _x_s_i__b_o_d_y(@modules) EXAMPLES SEE ALSO AUTHOR EEEExxxxttttUUUUttttiiiillllssss::::::::IIIInnnnssssttttaaaallllllll ---- iiiinnnnssssttttaaaallllllll ffffiiiilllleeeessss ffffrrrroooommmm hhhheeeerrrreeee ttttoooo tttthhhheeeerrrreeee SYNOPSIS DESCRIPTION EEEExxxxttttUUUUttttiiiillllssss::::::::IIIInnnnssssttttaaaalllllllleeeedddd ---- IIIInnnnvvvveeeennnnttttoooorrrryyyy mmmmaaaannnnaaaaggggeeeemmmmeeeennnntttt ooooffff iiiinnnnssssttttaaaalllllllleeeedddd mmmmoooodddduuuulllleeeessss SYNOPSIS DESCRIPTION USAGE FUNCTIONS _n_e_w(), _m_o_d_u_l_e_s(), _f_i_l_e_s(), _d_i_r_e_c_t_o_r_i_e_s(), _d_i_r_e_c_t_o_r_y__t_r_e_e(), _v_a_l_i_d_a_t_e(), _p_a_c_k_l_i_s_t(), _v_e_r_s_i_o_n() EXAMPLE AUTHOR EEEExxxxttttUUUUttttiiiillllssss::::::::LLLLiiiibbbblllliiiisssstttt ---- ddddeeeetttteeeerrrrmmmmiiiinnnneeee lllliiiibbbbrrrraaaarrrriiiieeeessss ttttoooo uuuusssseeee aaaannnndddd hhhhoooowwww ttttoooo uuuusssseeee tttthhhheeeemmmm SYNOPSIS DESCRIPTION For static extensions, For dynamic extensions, For dynamic extensions EXTRALIBS LDLOADLIBS and LD_RUN_PATH BSLOADLIBS PORTABILITY Page 74 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) VMS implementation Win32 implementation SEE ALSO EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMMMMM____OOOOSSSS2222 ---- mmmmeeeetttthhhhooooddddssss ttttoooo oooovvvveeeerrrrrrrriiiiddddeeee UUUUNNNN****XXXX bbbbeeeehhhhaaaavvvviiiioooouuuurrrr iiiinnnn EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMaaaakkkkeeeeMMMMaaaakkkkeeeerrrr SYNOPSIS DESCRIPTION EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMMMMM____UUUUnnnniiiixxxx ---- mmmmeeeetttthhhhooooddddssss uuuusssseeeedddd bbbbyyyy EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMaaaakkkkeeeeMMMMaaaakkkkeeeerrrr SYNOPSIS DESCRIPTION METHODS Preloaded methods canonpath, catdir, catfile, curdir, rootdir, updir SelfLoaded methods c_o (o), cflags (o), clean (o), const_cccmd (o), const_config (o), const_loadlibs (o), constants (o), depend (o), dir_target (o), dist (o), dist_basics (o), dist_ci (o), dist_core (o), dist_dir (o), dist_test (o), dlsyms (o), dynamic (o), dynamic_bs (o), dynamic_lib (o), exescan, extliblist, file_name_is_absolute, find_perl Methods to actually produce chunks of text for the Makefile fixin, force (o), guess_name, has_link_code, init_dirscan, init_main, init_others, install (o), installbin (o), libscan (o), linkext (o), lsdir, macro (o), makeaperl (o), makefile (o), manifypods (o), maybe_command, maybe_command_in_dirs, needs_linking (o), nicetext, parse_version, parse_abstract, pasthru (o), path, perl_script, perldepend (o), ppd, perm_rw (o), perm_rwx (o), pm_to_blib, post_constants (o), post_initialize (o), postamble (o), prefixify, processPL (o), realclean (o), replace_manpage_separator, static (o), static_lib (o), staticmake (o), subdir_x (o), subdirs (o), test (o), test_via_harness (o), test_via_script (o), tool_autosplit (o), tools_other (o), tool_xsubpp (o), top_targets (o), writedoc, xs_c (o), xs_o (o), perl_archive, export_list Page 75 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) SEE ALSO EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMMMMM____VVVVMMMMSSSS ---- mmmmeeeetttthhhhooooddddssss ttttoooo oooovvvveeeerrrrrrrriiiiddddeeee UUUUNNNN****XXXX bbbbeeeehhhhaaaavvvviiiioooouuuurrrr iiiinnnn EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMaaaakkkkeeeeMMMMaaaakkkkeeeerrrr SYNOPSIS DESCRIPTION Methods always loaded eliminate_macros, fixpath, catdir, catfile, wraplist, curdir (override), rootdir (override), updir (override) SelfLoaded methods guess_name (override), find_perl (override), path (override), maybe_command (override), maybe_command_in_dirs (override), perl_script (override), file_name_is_absolute (override), replace_manpage_separator, init_others (override), constants (override), cflags (override), const_cccmd (override), pm_to_blib (override), tool_autosplit (override), tool_sxubpp (override), xsubpp_version (override), tools_other (override), dist (override), c_o (override), xs_c (override), xs_o (override), top_targets (override), dlsyms (override), dynamic_lib (override), dynamic_bs (override), static_lib (override), manifypods (override), processPL (override), installbin (override), subdir_x (override), clean (override), realclean (override), dist_basics (override), dist_core (override), dist_dir (override), dist_test (override), install (override), perldepend (override), makefile (override), test (override), test_via_harness (override), test_via_script (override), makeaperl (override), nicetext (override) EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMMMMM____WWWWiiiinnnn33332222 ---- mmmmeeeetttthhhhooooddddssss ttttoooo oooovvvveeeerrrrrrrriiiiddddeeee UUUUNNNN****XXXX bbbbeeeehhhhaaaavvvviiiioooouuuurrrr iiiinnnn EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMaaaakkkkeeeeMMMMaaaakkkkeeeerrrr SYNOPSIS DESCRIPTION catfile, constants (o), static_lib (o), dynamic_bs (o), dynamic_lib (o), canonpath, perl_script, pm_to_blib, test_via_harness (o), tool_autosplit (override), tools_other (o), xs_o (o), top_targets (o), manifypods (o), dist_ci (o), dist_core (o), pasthru (o) EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMaaaakkkkeeeeMMMMaaaakkkkeeeerrrr ---- ccccrrrreeeeaaaatttteeee aaaannnn eeeexxxxtttteeeennnnssssiiiioooonnnn MMMMaaaakkkkeeeeffffiiiilllleeee SYNOPSIS Page 76 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) DESCRIPTION How To Write A Makefile.PL Default Makefile Behaviour make test make testdb make install PREFIX and LIB attribute AFS users Static Linking of a new Perl Binary Determination of Perl Library and Installation Locations Which architecture dependent directory? Using Attributes and Parameters C, CCFLAGS, CONFIG, CONFIGURE, DEFINE, DIR, DISTNAME, DL_FUNCS, DL_VARS, EXCLUDE_EXT, EXE_FILES, NO_VC, FIRST_MAKEFILE, FULLPERL, H, IMPORTS, INC, INCLUDE_EXT, INSTALLARCHLIB, INSTALLBIN, INSTALLDIRS, INSTALLMAN1DIR, INSTALLMAN3DIR, INSTALLPRIVLIB, INSTALLSCRIPT, INSTALLSITELIB, INSTALLSITEARCH, INST_ARCHLIB, INST_BIN, INST_EXE, INST_LIB, INST_MAN1DIR, INST_MAN3DIR, INST_SCRIPT, LDFROM, LIBPERL_A, LIB, LIBS, LINKTYPE, MAKEAPERL, MAKEFILE, MAN1PODS, MAN3PODS, MAP_TARGET, MYEXTLIB, NAME, NEEDS_LINKING, NOECHO, NORECURS, OBJECT, OPTIMIZE, PERL, PERLMAINCC, PERL_ARCHLIB, PERL_LIB, PERL_SRC, PERM_RW, PERM_RWX, PL_FILES, PM, PMLIBDIRS, PREFIX, PREREQ_PM, SKIP, TYPEMAPS, VERSION, VERSION_FROM, XS, XSOPT, XSPROTOARG, XS_VERSION Additional lowercase attributes clean, depend, dist, dynamic_lib, installpm, linkext, macro, realclean, tool_autosplit Overriding MakeMaker Methods Hintsfile support Distribution Support make distcheck, make skipcheck, make distclean, make manifest, make distdir, make tardist, make dist, make uutardist, make shdist, make zipdist, make ci Page 77 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Disabling an extension SEE ALSO AUTHORS EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMaaaannnniiiiffffeeeesssstttt ---- uuuuttttiiiilllliiiittttiiiieeeessss ttttoooo wwwwrrrriiiitttteeee aaaannnndddd cccchhhheeeecccckkkk aaaa MMMMAAAANNNNIIIIFFFFEEEESSSSTTTT ffffiiiilllleeee SYNOPSIS DESCRIPTION MANIFEST.SKIP EXPORT_OK GLOBAL VARIABLES DIAGNOSTICS Not in MANIFEST: _f_i_l_e, No such file: _f_i_l_e, MANIFEST: $!, Added to MANIFEST: _f_i_l_e SEE ALSO AUTHOR EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMkkkkbbbboooooooottttssssttttrrrraaaapppp ---- mmmmaaaakkkkeeee aaaa bbbboooooooottttssssttttrrrraaaapppp ffffiiiilllleeee ffffoooorrrr uuuusssseeee bbbbyyyy DDDDyyyynnnnaaaaLLLLooooaaaaddddeeeerrrr SYNOPSIS DESCRIPTION EEEExxxxttttUUUUttttiiiillllssss::::::::MMMMkkkkssssyyyymmmmlllliiiissssttttssss ---- wwwwrrrriiiitttteeee lllliiiinnnnkkkkeeeerrrr ooooppppttttiiiioooonnnnssss ffffiiiilllleeeessss ffffoooorrrr ddddyyyynnnnaaaammmmiiiicccc eeeexxxxtttteeeennnnssssiiiioooonnnn SYNOPSIS DESCRIPTION NAME, DL_FUNCS, DL_VARS, FILE, FUNCLIST, DLBASE AUTHOR REVISION EEEExxxxttttUUUUttttiiiillllssss::::::::PPPPaaaacccckkkklllliiiisssstttt ---- mmmmaaaannnnaaaaggggeeee ....ppppaaaacccckkkklllliiiisssstttt ffffiiiilllleeeessss SYNOPSIS DESCRIPTION Page 78 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) USAGE FUNCTIONS _n_e_w(), _r_e_a_d(), _w_r_i_t_e(), _v_a_l_i_d_a_t_e(), _p_a_c_k_l_i_s_t__f_i_l_e() EXAMPLE AUTHOR EEEExxxxttttUUUUttttiiiillllssss::::::::tttteeeessssttttlllliiiibbbb ---- aaaadddddddd bbbblllliiiibbbb////**** ddddiiiirrrreeeeccccttttoooorrrriiiieeeessss ttttoooo @@@@IIIINNNNCCCC SYNOPSIS DESCRIPTION FFFFaaaattttaaaallll ---- rrrreeeeppppllllaaaacccceeee ffffuuuunnnnccccttttiiiioooonnnnssss wwwwiiiitttthhhh eeeeqqqquuuuiiiivvvvaaaalllleeeennnnttttssss wwwwhhhhiiiicccchhhh ssssuuuucccccccceeeeeeeedddd oooorrrr ddddiiiieeee SYNOPSIS DESCRIPTION AUTHOR FFFFccccnnnnttttllll ---- llllooooaaaadddd tttthhhheeee CCCC FFFFccccnnnnttttllll....hhhh ddddeeeeffffiiiinnnneeeessss SYNOPSIS DESCRIPTION NOTE EXPORTED SYMBOLS FFFFiiiilllleeee::::::::BBBBaaaasssseeeennnnaaaammmmeeee,,,, ffffiiiilllleeeeppppaaaarrrrsssseeee ---- sssspppplllliiiitttt aaaa ppppaaaatttthhhhnnnnaaaammmmeeee iiiinnnnttttoooo ppppiiiieeeecccceeeessss SYNOPSIS DESCRIPTION fileparse_set_fstype, fileparse EXAMPLES basename, dirname FFFFiiiilllleeee::::::::CCCChhhheeeecccckkkkTTTTrrrreeeeeeee,,,, vvvvaaaalllliiiiddddaaaatttteeee ---- rrrruuuunnnn mmmmaaaannnnyyyy ffffiiiilllleeeetttteeeesssstttt cccchhhheeeecccckkkkssss oooonnnn aaaa ttttrrrreeeeeeee SYNOPSIS DESCRIPTION Page 79 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) FFFFiiiilllleeee::::::::CCCCoooommmmppppaaaarrrreeee ---- CCCCoooommmmppppaaaarrrreeee ffffiiiilllleeeessss oooorrrr ffffiiiilllleeeehhhhaaaannnnddddlllleeeessss SYNOPSIS DESCRIPTION RETURN AUTHOR FFFFiiiilllleeee::::::::CCCCooooppppyyyy ---- CCCCooooppppyyyy ffffiiiilllleeeessss oooorrrr ffffiiiilllleeeehhhhaaaannnnddddlllleeeessss SYNOPSIS DESCRIPTION Special behavior if syscopy is defined (VMS and OS/2) _r_m_s_c_o_p_y($from,$to[,$date_flag]) RETURN AUTHOR FFFFiiiilllleeee::::::::DDDDoooossssGGGGlllloooobbbb ---- DDDDOOOOSSSS lllliiiikkkkeeee gggglllloooobbbbbbbbiiiinnnngggg aaaannnndddd tttthhhheeeennnn ssssoooommmmeeee SYNOPSIS DESCRIPTION EXPORTS (by request only) BUGS AUTHOR HISTORY SEE ALSO FFFFiiiilllleeee::::::::FFFFiiiinnnndddd,,,, ffffiiiinnnndddd ---- ttttrrrraaaavvvveeeerrrrsssseeee aaaa ffffiiiilllleeee ttttrrrreeeeeeee SYNOPSIS DESCRIPTION BUGS FFFFiiiilllleeee::::::::PPPPaaaatttthhhh ---- ccccrrrreeeeaaaatttteeee oooorrrr rrrreeeemmmmoooovvvveeee aaaa sssseeeerrrriiiieeeessss ooooffff ddddiiiirrrreeeeccccttttoooorrrriiiieeeessss SYNOPSIS Page 80 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) DESCRIPTION AUTHORS REVISION FFFFiiiilllleeee::::::::SSSSppppeeeecccc ---- ppppoooorrrrttttaaaabbbbllllyyyy ppppeeeerrrrffffoooorrrrmmmm ooooppppeeeerrrraaaattttiiiioooonnnnssss oooonnnn ffffiiiilllleeee nnnnaaaammmmeeeessss SYNOPSIS DESCRIPTION SEE ALSO AUTHORS FFFFiiiilllleeee::::::::SSSSppppeeeecccc::::::::MMMMaaaacccc ---- FFFFiiiilllleeee::::::::SSSSppppeeeecccc ffffoooorrrr MMMMaaaaccccOOOOSSSS SYNOPSIS DESCRIPTION METHODS canonpath, catdir, catfile, curdir, rootdir, updir, file_name_is_absolute, path SEE ALSO FFFFiiiilllleeee::::::::SSSSppppeeeecccc::::::::OOOOSSSS2222 ---- mmmmeeeetttthhhhooooddddssss ffffoooorrrr OOOOSSSS////2222 ffffiiiilllleeee ssssppppeeeeccccssss SYNOPSIS DESCRIPTION FFFFiiiilllleeee::::::::SSSSppppeeeecccc::::::::UUUUnnnniiiixxxx ---- mmmmeeeetttthhhhooooddddssss uuuusssseeeedddd bbbbyyyy FFFFiiiilllleeee::::::::SSSSppppeeeecccc SYNOPSIS DESCRIPTION METHODS canonpath, catdir, catfile, curdir, rootdir, updir, no_upwards, file_name_is_absolute, path, join, nativename SEE ALSO FFFFiiiilllleeee::::::::SSSSppppeeeecccc::::::::VVVVMMMMSSSS ---- mmmmeeeetttthhhhooooddddssss ffffoooorrrr VVVVMMMMSSSS ffffiiiilllleeee ssssppppeeeeccccssss SYNOPSIS DESCRIPTION Page 81 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Methods always loaded catdir, catfile, curdir (override), rootdir (override), updir (override), path (override), file_name_is_absolute (override) FFFFiiiilllleeee::::::::SSSSppppeeeecccc::::::::WWWWiiiinnnn33332222 ---- mmmmeeeetttthhhhooooddddssss ffffoooorrrr WWWWiiiinnnn33332222 ffffiiiilllleeee ssssppppeeeeccccssss SYNOPSIS DESCRIPTION catfile, canonpath FFFFiiiilllleeee::::::::ssssttttaaaatttt ---- bbbbyyyy----nnnnaaaammmmeeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll''''ssss bbbbuuuuiiiilllltttt----iiiinnnn _s_t_a_t() functions SYNOPSIS DESCRIPTION NOTE AUTHOR FFFFiiiilllleeeeCCCCaaaacccchhhheeee ---- kkkkeeeeeeeepppp mmmmoooorrrreeee ffffiiiilllleeeessss ooooppppeeeennnn tttthhhhaaaannnn tttthhhheeee ssssyyyysssstttteeeemmmm ppppeeeerrrrmmmmiiiittttssss SYNOPSIS DESCRIPTION BUGS FFFFiiiilllleeeeHHHHaaaannnnddddlllleeee ---- ssssuuuuppppppppllllyyyy oooobbbbjjjjeeeecccctttt mmmmeeeetttthhhhooooddddssss ffffoooorrrr ffffiiiilllleeeehhhhaaaannnnddddlllleeeessss SYNOPSIS DESCRIPTION $fh->print, $fh->printf, $fh->getline, $fh->getlines SEE ALSO FFFFiiiinnnnddddBBBBiiiinnnn ---- LLLLooooccccaaaatttteeee ddddiiiirrrreeeeccccttttoooorrrryyyy ooooffff oooorrrriiiiggggiiiinnnnaaaallll ppppeeeerrrrllll ssssccccrrrriiiipppptttt SYNOPSIS DESCRIPTION EXPORTABLE VARIABLES KNOWN BUGS AUTHORS Page 82 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) COPYRIGHT REVISION GGGGDDDDBBBBMMMM____FFFFiiiilllleeee ---- PPPPeeeerrrrllll5555 aaaacccccccceeeessssssss ttttoooo tttthhhheeee ggggddddbbbbmmmm lllliiiibbbbrrrraaaarrrryyyy.... SYNOPSIS DESCRIPTION AVAILABILITY BUGS SEE ALSO GGGGeeeettttoooopppptttt::::::::LLLLoooonnnngggg,,,, GGGGeeeettttOOOOppppttttiiiioooonnnnssss ---- eeeexxxxtttteeeennnnddddeeeedddd pppprrrroooocccceeeessssssssiiiinnnngggg ooooffff ccccoooommmmmmmmaaaannnndddd lllliiiinnnneeee ooooppppttttiiiioooonnnnssss SYNOPSIS DESCRIPTION !, +, :s, :i, :f Linkage specification Aliases and abbreviations Non-option call-back routine Option starters Return values and Errors COMPATIBILITY EXAMPLES CONFIGURATION OPTIONS default, auto_abbrev, getopt_compat, require_order, permute, bundling (default: reset), bundling_override (default: reset), ignore_case (default: set), ignore_case_always (default: reset), pass_through (default: reset), prefix, prefix_pattern, debug (default: reset) OTHER USEFUL VARIABLES $Getopt::Long::VERSION, $Getopt::Long::error AUTHOR COPYRIGHT AND DISCLAIMER Page 83 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) GGGGeeeettttoooopppptttt::::::::SSSSttttdddd,,,, ggggeeeettttoooopppptttt ---- PPPPrrrroooocccceeeessssssss ssssiiiinnnngggglllleeee----cccchhhhaaaarrrraaaacccctttteeeerrrr sssswwwwiiiittttcccchhhheeeessss wwwwiiiitttthhhh sssswwwwiiiittttcccchhhh cccclllluuuusssstttteeeerrrriiiinnnngggg SYNOPSIS DESCRIPTION IIII11118888NNNN::::::::CCCCoooollllllllaaaatttteeee ---- ccccoooommmmppppaaaarrrreeee 8888----bbbbiiiitttt ssssccccaaaallllaaaarrrr ddddaaaattttaaaa aaaaccccccccoooorrrrddddiiiinnnngggg ttttoooo tttthhhheeee ccccuuuurrrrrrrreeeennnntttt llllooooccccaaaalllleeee SYNOPSIS DESCRIPTION IIIIOOOO ---- llllooooaaaadddd vvvvaaaarrrriiiioooouuuussss IIIIOOOO mmmmoooodddduuuulllleeeessss SYNOPSIS DESCRIPTION IIIIOOOO::::::::lllliiiibbbb::::::::IIIIOOOO::::::::FFFFiiiilllleeee,,,, IIIIOOOO::::::::FFFFiiiilllleeee ---- ssssuuuuppppppppllllyyyy oooobbbbjjjjeeeecccctttt mmmmeeeetttthhhhooooddddssss ffffoooorrrr ffffiiiilllleeeehhhhaaaannnnddddlllleeeessss SYNOPSIS DESCRIPTION CONSTRUCTOR new ([ ARGS ] ), new_tmpfile METHODS _o_p_e_n( FILENAME [,MODE [,PERMS]] ) SEE ALSO HISTORY IIIIOOOO::::::::lllliiiibbbb::::::::IIIIOOOO::::::::HHHHaaaannnnddddlllleeee,,,, IIIIOOOO::::::::HHHHaaaannnnddddlllleeee ---- ssssuuuuppppppppllllyyyy oooobbbbjjjjeeeecccctttt mmmmeeeetttthhhhooooddddssss ffffoooorrrr IIII////OOOO hhhhaaaannnnddddlllleeeessss SYNOPSIS DESCRIPTION CONSTRUCTOR new (), new_from_fd ( FD, MODE ) METHODS $fh->fdopen ( FD, MODE ), $fh->opened, $fh->getline, $fh->getlines, $fh->ungetc ( ORD ), $fh->write ( BUF, LEN [, OFFSET }\] ), $fh->flush, $fh->error, $fh->clearerr, $fh->untaint Page 84 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) NOTE SEE ALSO BUGS HISTORY IIIIOOOO::::::::lllliiiibbbb::::::::IIIIOOOO::::::::PPPPiiiippppeeee,,,, IIIIOOOO::::::::ppppiiiippppeeee ---- ssssuuuuppppppppllllyyyy oooobbbbjjjjeeeecccctttt mmmmeeeetttthhhhooooddddssss ffffoooorrrr ppppiiiippppeeeessss SYNOPSIS DESCRIPTION CONSTRCUTOR new ( [READER, WRITER] ) METHODS reader ([ARGS]), writer ([ARGS]), handles () SEE ALSO AUTHOR COPYRIGHT IIIIOOOO::::::::lllliiiibbbb::::::::IIIIOOOO::::::::SSSSeeeeeeeekkkkaaaabbbblllleeee,,,, IIIIOOOO::::::::SSSSeeeeeeeekkkkaaaabbbblllleeee ---- ssssuuuuppppppppllllyyyy sssseeeeeeeekkkk bbbbaaaasssseeeedddd mmmmeeeetttthhhhooooddddssss ffffoooorrrr IIII////OOOO oooobbbbjjjjeeeeccccttttssss SYNOPSIS DESCRIPTION SEE ALSO HISTORY IIIIOOOO::::::::lllliiiibbbb::::::::IIIIOOOO::::::::SSSSeeeelllleeeecccctttt,,,, IIIIOOOO::::::::SSSSeeeelllleeeecccctttt ---- OOOOOOOO iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo tttthhhheeee sssseeeelllleeeecccctttt ssssyyyysssstttteeeemmmm ccccaaaallllllll SYNOPSIS DESCRIPTION CONSTRUCTOR new ( [ HANDLES ] ) METHODS add ( HANDLES ), remove ( HANDLES ), exists ( HANDLE ), handles, can_read ( [ TIMEOUT ] ), can_write ( [ TIMEOUT ] ), has_error ( [ TIMEOUT ] ), count (), _b_i_t_s(), _b_i_t_s(), Page 85 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) select ( READ, WRITE, ERROR [, TIMEOUT ] ) EXAMPLE AUTHOR COPYRIGHT IIIIOOOO::::::::lllliiiibbbb::::::::IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt,,,, IIIIOOOO::::::::SSSSoooocccckkkkeeeetttt ---- OOOObbbbjjjjeeeecccctttt iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo ssssoooocccckkkkeeeetttt ccccoooommmmmmmmuuuunnnniiiiccccaaaattttiiiioooonnnnssss SYNOPSIS DESCRIPTION CONSTRUCTOR new ( [ARGS] ) METHODS _a_c_c_e_p_t([PKG]), _t_i_m_e_o_u_t([VAL]), _s_o_c_k_o_p_t(OPT [, VAL]), sockdomain, socktype, protocol SUB-CLASSES IO::Socket::INET METHODS sockaddr (), sockport (), sockhost (), peeraddr (), peerport (), peerhost () IO::Socket::UNIX METHODS _h_o_s_t_p_a_t_h(), _p_e_e_r_p_a_t_h() SEE ALSO AUTHOR COPYRIGHT IIIIPPPPCCCC::::::::OOOOppppeeeennnn2222,,,, ooooppppeeeennnn2222 ---- ooooppppeeeennnn aaaa pppprrrroooocccceeeessssssss ffffoooorrrr bbbbooootttthhhh rrrreeeeaaaaddddiiiinnnngggg aaaannnndddd wwwwrrrriiiittttiiiinnnngggg SYNOPSIS DESCRIPTION WARNING SEE ALSO Page 86 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) IIIIPPPPCCCC::::::::OOOOppppeeeennnn3333,,,, ooooppppeeeennnn3333 ---- ooooppppeeeennnn aaaa pppprrrroooocccceeeessssssss ffffoooorrrr rrrreeeeaaaaddddiiiinnnngggg,,,, wwwwrrrriiiittttiiiinnnngggg,,,, aaaannnndddd eeeerrrrrrrroooorrrr hhhhaaaannnnddddlllliiiinnnngggg SYNOPSIS DESCRIPTION WARNING IIIIPPPPCCCC::::::::SSSSyyyyssssVVVV ---- SSSSyyyyssssVVVV IIIIPPPPCCCC ccccoooonnnnssssttttaaaannnnttttssss SYNOPSIS DESCRIPTION _f_t_o_k( PATH, ID ) SEE ALSO AUTHORS COPYRIGHT IIIIPPPPCCCC::::::::SSSSyyyyssssVVVV::::::::MMMMssssgggg,,,, IIIIPPPPCCCC::::::::MMMMssssgggg ---- SSSSyyyyssssVVVV MMMMssssgggg IIIIPPPPCCCC oooobbbbjjjjeeeecccctttt ccccllllaaaassssssss SYNOPSIS DESCRIPTION METHODS new ( KEY , FLAGS ), id, rcv ( BUF, LEN [, TYPE [, FLAGS ]] ), remove, set ( STAT ), set ( NAME => VALUE [, NAME => VALUE ...] ), snd ( TYPE, MSG [, FLAGS ] ), stat SEE ALSO AUTHOR COPYRIGHT IIIIPPPPCCCC::::::::SSSSyyyyssssVVVV::::::::SSSSeeeemmmmaaaapppphhhhoooorrrreeee,,,, IIIIPPPPCCCC::::::::SSSSeeeemmmmaaaapppphhhhoooorrrreeee ---- SSSSyyyyssssVVVV SSSSeeeemmmmaaaapppphhhhoooorrrreeee IIIIPPPPCCCC oooobbbbjjjjeeeecccctttt ccccllllaaaassssssss SYNOPSIS DESCRIPTION METHODS new ( KEY , NSEMS , FLAGS ), getall, getncnt ( SEM ), getpid ( SEM ), getval ( SEM ), getzcnt ( SEM ), id, op ( OPLIST ), remove, set ( STAT ), set ( NAME => VALUE [, NAME => VALUE ...] ), setall ( VALUES ), setval ( N , VALUE ), stat Page 87 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) SEE ALSO AUTHOR COPYRIGHT MMMMaaaatttthhhh::::::::BBBBiiiiggggFFFFllllooooaaaatttt ---- AAAArrrrbbbbiiiittttrrrraaaarrrryyyy lllleeeennnnggggtttthhhh ffffllllooooaaaatttt mmmmaaaatttthhhh ppppaaaacccckkkkaaaaggggeeee SYNOPSIS DESCRIPTION number format, Error returns 'NaN', Division is computed to BUGS AUTHOR MMMMaaaatttthhhh::::::::BBBBiiiiggggIIIInnnntttt ---- AAAArrrrbbbbiiiittttrrrraaaarrrryyyy ssssiiiizzzzeeee iiiinnnntttteeeeggggeeeerrrr mmmmaaaatttthhhh ppppaaaacccckkkkaaaaggggeeee SYNOPSIS DESCRIPTION Canonical notation, Input, Output EXAMPLES Autocreating constants BUGS AUTHOR MMMMaaaatttthhhh::::::::CCCCoooommmmpppplllleeeexxxx ---- ccccoooommmmpppplllleeeexxxx nnnnuuuummmmbbbbeeeerrrrssss aaaannnndddd aaaassssssssoooocccciiiiaaaatttteeeedddd mmmmaaaatttthhhheeeemmmmaaaattttiiiiccccaaaallll ffffuuuunnnnccccttttiiiioooonnnnssss SYNOPSIS DESCRIPTION OPERATIONS CREATION STRINGIFICATION USAGE ERRORS DUE TO DIVISION BY ZERO OR LOGARITHM OF ZERO ERRORS DUE TO INDIGESTIBLE ARGUMENTS Page 88 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) BUGS AUTHORS MMMMaaaatttthhhh::::::::TTTTrrrriiiigggg ---- ttttrrrriiiiggggoooonnnnoooommmmeeeettttrrrriiiicccc ffffuuuunnnnccccttttiiiioooonnnnssss SYNOPSIS DESCRIPTION TRIGONOMETRIC FUNCTIONS ttttaaaannnn ERRORS DUE TO DIVISION BY ZERO SIMPLE (REAL) ARGUMENTS, COMPLEX RESULTS PLANE ANGLE CONVERSIONS RADIAL COORDINATE CONVERSIONS COORDINATE SYSTEMS 3-D ANGLE CONVERSIONS cartesian_to_cylindrical, cartesian_to_spherical, cylindrical_to_cartesian, cylindrical_to_spherical, spherical_to_cartesian, spherical_to_cylindrical GREAT CIRCLE DISTANCES EXAMPLES BUGS AUTHORS NNNNDDDDBBBBMMMM____FFFFiiiilllleeee ---- TTTTiiiieeeedddd aaaacccccccceeeessssssss ttttoooo nnnnddddbbbbmmmm ffffiiiilllleeeessss SYNOPSIS DESCRIPTION NNNNeeeetttt::::::::PPPPiiiinnnngggg ---- cccchhhheeeecccckkkk aaaa rrrreeeemmmmooootttteeee hhhhoooosssstttt ffffoooorrrr rrrreeeeaaaacccchhhhaaaabbbbiiiilllliiiittttyyyy SYNOPSIS DESCRIPTION Functions Net::Ping->_n_e_w([$proto [, $def_timeout [, $bytes]]]);, $p->_p_i_n_g($host [, $timeout]);, $p->_c_l_o_s_e();, _p_i_n_g_e_c_h_o($host [, $timeout]); Page 89 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) WARNING NOTES NNNNeeeetttt::::::::hhhhoooosssstttteeeennnntttt ---- bbbbyyyy----nnnnaaaammmmeeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll''''ssss bbbbuuuuiiiilllltttt----iiiinnnn ggggeeeetttthhhhoooosssstttt****(((()))) ffffuuuunnnnccccttttiiiioooonnnnssss SYNOPSIS DESCRIPTION EXAMPLES NOTE AUTHOR NNNNeeeetttt::::::::nnnneeeetttteeeennnntttt ---- bbbbyyyy----nnnnaaaammmmeeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll''''ssss bbbbuuuuiiiilllltttt----iiiinnnn ggggeeeettttnnnneeeetttt****(((()))) ffffuuuunnnnccccttttiiiioooonnnnssss SYNOPSIS DESCRIPTION EXAMPLES NOTE AUTHOR NNNNeeeetttt::::::::pppprrrroooottttooooeeeennnntttt ---- bbbbyyyy----nnnnaaaammmmeeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll''''ssss bbbbuuuuiiiilllltttt----iiiinnnn ggggeeeettttpppprrrroooottttoooo****(((()))) ffffuuuunnnnccccttttiiiioooonnnnssss SYNOPSIS DESCRIPTION NOTE AUTHOR NNNNeeeetttt::::::::sssseeeerrrrvvvveeeennnntttt ---- bbbbyyyy----nnnnaaaammmmeeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll''''ssss bbbbuuuuiiiilllltttt----iiiinnnn ggggeeeettttsssseeeerrrrvvvv****(((()))) ffffuuuunnnnccccttttiiiioooonnnnssss SYNOPSIS DESCRIPTION EXAMPLES NOTE Page 90 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) AUTHOR OOOODDDDBBBBMMMM____FFFFiiiilllleeee ---- TTTTiiiieeeedddd aaaacccccccceeeessssssss ttttoooo ooooddddbbbbmmmm ffffiiiilllleeeessss SYNOPSIS DESCRIPTION OOOOppppccccooooddddeeee ---- DDDDiiiissssaaaabbbblllleeee nnnnaaaammmmeeeedddd ooooppppccccooooddddeeeessss wwwwhhhheeeennnn ccccoooommmmppppiiiilllliiiinnnngggg ppppeeeerrrrllll ccccooooddddeeee SYNOPSIS DESCRIPTION NOTE WARNING Operator Names and Operator Lists an operator name (opname), an operator tag name (optag), a negated opname or optag, an operator set (opset) Opcode Functions opcodes, opset (OP, ...), opset_to_ops (OPSET), opset_to_hex (OPSET), full_opset, empty_opset, invert_opset (OPSET), verify_opset (OPSET, ...), define_optag (OPTAG, OPSET), opmask_add (OPSET), opmask, opdesc (OP, ...), opdump (PAT) Manipulating Opsets TO DO (maybe) Predefined Opcode Tags :base_core, :base_mem, :base_loop, :base_io, :base_orig, :base_math, :base_thread, :default, :filesys_read, :sys_db, :browse, :filesys_open, :filesys_write, :subprocess, :ownprocess, :others, :still_to_be_decided, :dangerous SEE ALSO AUTHORS OOOOppppccccooooddddeeee::::::::SSSSaaaaffffeeee,,,, SSSSaaaaffffeeee ---- CCCCoooommmmppppiiiilllleeee aaaannnndddd eeeexxxxeeeeccccuuuutttteeee ccccooooddddeeee iiiinnnn rrrreeeessssttttrrrriiiicccctttteeeedddd ccccoooommmmppppaaaarrrrttttmmmmeeeennnnttttssss SYNOPSIS DESCRIPTION a new namespace, an operator mask WARNING Page 91 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) RECENT CHANGES Methods in class Safe permit (OP, ...), permit_only (OP, ...), deny (OP, ...), deny_only (OP, ...), trap (OP, ...), untrap (OP, ...), share (NAME, ...), share_from (PACKAGE, ARRAYREF), varglob (VARNAME), reval (STRING), rdo (FILENAME), root (NAMESPACE), mask (MASK) Some Safety Issues Memory, CPU, Snooping, Signals, State Changes AUTHOR OOOOppppccccooooddddeeee::::::::ooooppppssss,,,, ooooppppssss ---- PPPPeeeerrrrllll pppprrrraaaaggggmmmmaaaa ttttoooo rrrreeeessssttttrrrriiiicccctttt uuuunnnnssssaaaaffffeeee ooooppppeeeerrrraaaattttiiiioooonnnnssss wwwwhhhheeeennnn ccccoooommmmppppiiiilllliiiinnnngggg SYNOPSIS DESCRIPTION SEE ALSO PPPPOOOOSSSSIIIIXXXX ---- PPPPeeeerrrrllll iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo IIIIEEEEEEEEEEEE SSSSttttdddd 1111000000003333....1111 SYNOPSIS DESCRIPTION NOTE CAVEATS FUNCTIONS _exit, abort, abs, access, acos, alarm, asctime, asin, assert, atan, atan2, atexit, atof, atoi, atol, bsearch, calloc, ceil, chdir, chmod, chown, clearerr, clock, close, closedir, cos, cosh, creat, ctermid, ctime, cuserid, difftime, div, dup, dup2, errno, execl, execle, execlp, execv, execve, execvp, exit, exp, fabs, fclose, fcntl, fdopen, feof, ferror, fflush, fgetc, fgetpos, fgets, fileno, floor, fmod, fopen, fork, fpathconf, fprintf, fputc, fputs, fread, free, freopen, frexp, fscanf, fseek, fsetpos, fstat, ftell, fwrite, getc, getchar, getcwd, getegid, getenv, geteuid, getgid, getgrgid, getgrnam, getgroups, getlogin, getpgrp, getpid, getppid, getpwnam, getpwuid, gets, getuid, gmtime, isalnum, isalpha, isatty, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit, kill, labs, ldexp, ldiv, link, localeconv, localtime, log, log10, longjmp, lseek, malloc, mblen, mbstowcs, mbtowc, memchr, memcmp, memcpy, memmove, memset, mkdir, mkfifo, mktime, modf, nice, offsetof, open, opendir, pathconf, pause, Page 92 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) perror, pipe, pow, printf, putc, putchar, puts, qsort, raise, rand, read, readdir, realloc, remove, rename, rewind, rewinddir, rmdir, scanf, setgid, setjmp, setlocale, setpgid, setsid, setuid, sigaction, siglongjmp, sigpending, sigprocmask, sigsetjmp, sigsuspend, sin, sinh, sleep, sprintf, sqrt, srand, sscanf, stat, strcat, strchr, strcmp, strcoll, strcpy, strcspn, strerror, strftime, strlen, strncat, strncmp, strncpy, stroul, strpbrk, strrchr, strspn, strstr, strtod, strtok, strtol, strtoul, strxfrm, sysconf, system, tan, tanh, tcdrain, tcflow, tcflush, tcgetpgrp, tcsendbreak, tcsetpgrp, time, times, tmpfile, tmpnam, tolower, toupper, ttyname, tzname, tzset, umask, uname, ungetc, unlink, utime, vfprintf, vprintf, vsprintf, wait, waitpid, wcstombs, wctomb, write CLASSES POSIX::SigAction new POSIX::SigSet new, addset, delset, emptyset, fillset, ismember POSIX::Termios new, getattr, getcc, getcflag, getiflag, getispeed, getlflag, getoflag, getospeed, setattr, setcc, setcflag, setiflag, setispeed, setlflag, setoflag, setospeed, Baud rate values, Terminal interface values, c_cc field values, c_cflag field values, c_iflag field values, c_lflag field values, c_oflag field values PATHNAME CONSTANTS Constants POSIX CONSTANTS Constants SYSTEM CONFIGURATION Constants ERRNO Constants FCNTL Constants FLOAT Constants LIMITS Constants Page 93 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) LOCALE Constants MATH Constants SIGNAL Constants STAT Constants, Macros STDLIB Constants STDIO Constants TIME Constants UNISTD Constants WAIT Constants, Macros CREATION PPPPoooodddd::::::::HHHHttttmmmmllll ---- mmmmoooodddduuuulllleeee ttttoooo ccccoooonnnnvvvveeeerrrrtttt ppppoooodddd ffffiiiilllleeeessss ttttoooo HHHHTTTTMMMMLLLL SYNOPSIS DESCRIPTION ARGUMENTS help, htmlroot, infile, outfile, podroot, podpath, libpods, netscape, nonetscape, index, noindex, recurse, norecurse, title, verbose EXAMPLE AUTHOR BUGS SEE ALSO COPYRIGHT Page 94 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) PPPPoooodddd::::::::TTTTeeeexxxxtttt ---- ccccoooonnnnvvvveeeerrrrtttt PPPPOOOODDDD ddddaaaattttaaaa ttttoooo ffffoooorrrrmmmmaaaatttttttteeeedddd AAAASSSSCCCCIIIIIIII tttteeeexxxxtttt SYNOPSIS DESCRIPTION AUTHOR TODO SSSSDDDDBBBBMMMM____FFFFiiiilllleeee ---- TTTTiiiieeeedddd aaaacccccccceeeessssssss ttttoooo ssssddddbbbbmmmm ffffiiiilllleeeessss SYNOPSIS DESCRIPTION SSSSeeeeaaaarrrrcccchhhh::::::::DDDDiiiicccctttt,,,, llllooooooookkkk ---- sssseeeeaaaarrrrcccchhhh ffffoooorrrr kkkkeeeeyyyy iiiinnnn ddddiiiiccccttttiiiioooonnnnaaaarrrryyyy ffffiiiilllleeee SYNOPSIS DESCRIPTION SSSSeeeelllleeeeccccttttSSSSaaaavvvveeeerrrr ---- ssssaaaavvvveeee aaaannnndddd rrrreeeessssttttoooorrrreeee sssseeeelllleeeecccctttteeeedddd ffffiiiilllleeee hhhhaaaannnnddddlllleeee SYNOPSIS DESCRIPTION SSSSeeeellllffffLLLLooooaaaaddddeeeerrrr ---- llllooooaaaadddd ffffuuuunnnnccccttttiiiioooonnnnssss oooonnnnllllyyyy oooonnnn ddddeeeemmmmaaaannnndddd SYNOPSIS DESCRIPTION The __DATA__ token SelfLoader autoloading Autoloading and package lexicals SelfLoader and AutoLoader __DATA__, __END__, and the FOOBAR::DATA filehandle. Classes and inherited methods. Multiple packages and fully qualified subroutine names SSSShhhheeeellllllll ---- rrrruuuunnnn sssshhhheeeellllllll ccccoooommmmmmmmaaaannnnddddssss ttttrrrraaaannnnssssppppaaaarrrreeeennnnttttllllyyyy wwwwiiiitttthhhhiiiinnnn ppppeeeerrrrllll Page 95 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) SYNOPSIS DESCRIPTION AUTHOR SSSSoooocccckkkkeeeetttt,,,, ssssoooocccckkkkaaaaddddddddrrrr____iiiinnnn,,,, ssssoooocccckkkkaaaaddddddddrrrr____uuuunnnn,,,, iiiinnnneeeetttt____aaaattttoooonnnn,,,, iiiinnnneeeetttt____nnnnttttooooaaaa ---- llllooooaaaadddd tttthhhheeee CCCC ssssoooocccckkkkeeeetttt....hhhh ddddeeeeffffiiiinnnneeeessss aaaannnndddd ssssttttrrrruuuuccccttttuuuurrrreeee mmmmaaaannnniiiippppuuuullllaaaattttoooorrrrssss SYNOPSIS DESCRIPTION inet_aton HOSTNAME, inet_ntoa IP_ADDRESS, INADDR_ANY, INADDR_BROADCAST, INADDR_LOOPBACK, INADDR_NONE, sockaddr_in PORT, ADDRESS, sockaddr_in SOCKADDR_IN, pack_sockaddr_in PORT, IP_ADDRESS, unpack_sockaddr_in SOCKADDR_IN, sockaddr_un PATHNAME, sockaddr_un SOCKADDR_UN, pack_sockaddr_un PATH, unpack_sockaddr_un SOCKADDR_UN SSSSyyyymmmmbbbboooollll ---- mmmmaaaannnniiiippppuuuullllaaaatttteeee PPPPeeeerrrrllll ssssyyyymmmmbbbboooollllssss aaaannnndddd tttthhhheeeeiiiirrrr nnnnaaaammmmeeeessss SYNOPSIS DESCRIPTION SSSSyyyyssss::::::::HHHHoooossssttttnnnnaaaammmmeeee ---- TTTTrrrryyyy eeeevvvveeeerrrryyyy ccccoooonnnncccceeeeiiiivvvvaaaabbbblllleeee wwwwaaaayyyy ttttoooo ggggeeeetttt hhhhoooossssttttnnnnaaaammmmeeee SYNOPSIS DESCRIPTION AUTHOR SSSSyyyysssslllloooogggg,,,, SSSSyyyyssss::::::::SSSSyyyysssslllloooogggg,,,, ooooppppeeeennnnlllloooogggg,,,, cccclllloooosssseeeelllloooogggg,,,, sssseeeettttllllooooggggmmmmaaaasssskkkk,,,, ssssyyyysssslllloooogggg ---- PPPPeeeerrrrllll iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo tttthhhheeee UUUUNNNNIIIIXXXX _s_y_s_l_o_g(3) calls SYNOPSIS DESCRIPTION openlog $ident, $logopt, $facility, syslog $priority, $format, @args, setlogmask $mask_priority, setlogsock $sock_type (added in 5.004_02), closelog EXAMPLES DEPENDENCIES SEE ALSO AUTHOR Page 96 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) TTTTeeeerrrrmmmm::::::::CCCCaaaapppp ---- PPPPeeeerrrrllll tttteeeerrrrmmmmccccaaaapppp iiiinnnntttteeeerrrrffffaaaacccceeee SYNOPSIS DESCRIPTION EXAMPLES TTTTeeeerrrrmmmm::::::::CCCCoooommmmpppplllleeeetttteeee ---- PPPPeeeerrrrllll wwwwoooorrrrdddd ccccoooommmmpppplllleeeettttiiiioooonnnn mmmmoooodddduuuulllleeee SYNOPSIS DESCRIPTION <tab>, ^D, ^U, <del>, <bs> DIAGNOSTICS BUGS AUTHOR TTTTeeeerrrrmmmm::::::::RRRReeeeaaaaddddLLLLiiiinnnneeee ---- PPPPeeeerrrrllll iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo vvvvaaaarrrriiiioooouuuussss rrrreeeeaaaaddddlllliiiinnnneeee packages. If no real package is found, substitutes stubs instead of basic functions. SYNOPSIS DESCRIPTION Minimal set of supported functions ReadLine, new, readline, addhistory, IN, $OUT, MinLine, findConsole, Attribs, Features Additional supported functions tkRunning, ornaments, newTTY EXPORTS ENVIRONMENT TTTTeeeesssstttt ---- pppprrrroooovvvviiiiddddeeeessss aaaa ssssiiiimmmmpppplllleeee ffffrrrraaaammmmeeeewwwwoooorrrrkkkk ffffoooorrrr wwwwrrrriiiittttiiiinnnngggg tttteeeesssstttt ssssccccrrrriiiippppttttssss SYNOPSIS DESCRIPTION TEST TYPES NORMAL TESTS, SKIPPED TESTS, TODO TESTS ONFAIL Page 97 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) SEE ALSO AUTHOR TTTTeeeesssstttt::::::::HHHHaaaarrrrnnnneeeessssssss ---- rrrruuuunnnn ppppeeeerrrrllll ssssttttaaaannnnddddaaaarrrrdddd tttteeeesssstttt ssssccccrrrriiiippppttttssss wwwwiiiitttthhhh ssssttttaaaattttiiiissssttttiiiiccccssss SYNOPSIS DESCRIPTION The test script output EXPORT DIAGNOSTICS All tests successful.\nFiles=%d, Tests=%d, %s, FAILED tests %s\n\tFailed %d/%d tests, %.2f%% okay., Test returned status %d (wstat %d), Failed 1 test, %.2f%% okay. %s, Failed %d/%d tests, %.2f%% okay. %s ENVIRONMENT SEE ALSO AUTHORS BUGS TTTTeeeexxxxtttt::::::::AAAAbbbbbbbbrrrreeeevvvv,,,, aaaabbbbbbbbrrrreeeevvvv ---- ccccrrrreeeeaaaatttteeee aaaannnn aaaabbbbbbbbrrrreeeevvvviiiiaaaattttiiiioooonnnn ttttaaaabbbblllleeee ffffrrrroooommmm aaaa lllliiiisssstttt SYNOPSIS DESCRIPTION EXAMPLE TTTTeeeexxxxtttt::::::::PPPPaaaarrrrsssseeeeWWWWoooorrrrddddssss ---- ppppaaaarrrrsssseeee tttteeeexxxxtttt iiiinnnnttttoooo aaaannnn aaaarrrrrrrraaaayyyy ooooffff ttttooookkkkeeeennnnssss oooorrrr aaaarrrrrrrraaaayyyy ooooffff aaaarrrrrrrraaaayyyyssss SYNOPSIS DESCRIPTION EXAMPLES 0a simple word, 1multiple spaces are skipped because of our $delim, 2use of quotes to include a space in a word, 3use of a backslash to include a space in a word, 4use of a backslash to remove the special meaning of a double-quote, 5another simple word (note the lack of effect of the backslashed double-quote) Page 98 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) AUTHORS TTTTeeeexxxxtttt::::::::SSSSoooouuuunnnnddddeeeexxxx ---- IIIImmmmpppplllleeeemmmmeeeennnnttttaaaattttiiiioooonnnn ooooffff tttthhhheeee SSSSoooouuuunnnnddddeeeexxxx AAAAllllggggoooorrrriiiitttthhhhmmmm aaaassss DDDDeeeessssccccrrrriiiibbbbeeeedddd bbbbyyyy KKKKnnnnuuuutttthhhh SYNOPSIS DESCRIPTION EXAMPLES LIMITATIONS AUTHOR TTTTeeeexxxxtttt::::::::TTTTaaaabbbbssss -------- eeeexxxxppppaaaannnndddd aaaannnndddd uuuunnnneeeexxxxppppaaaannnndddd ttttaaaabbbbssss ppppeeeerrrr tttthhhheeee uuuunnnniiiixxxx _e_x_p_a_n_d(1) and _u_n_e_x_p_a_n_d(1) SYNOPSIS DESCRIPTION BUGS AUTHOR TTTTeeeexxxxtttt::::::::WWWWrrrraaaapppp ---- lllliiiinnnneeee wwwwrrrraaaappppppppiiiinnnngggg ttttoooo ffffoooorrrrmmmm ssssiiiimmmmpppplllleeee ppppaaaarrrraaaaggggrrrraaaapppphhhhssss SYNOPSIS DESCRIPTION EXAMPLE BUGS AUTHOR TTTThhhhrrrreeeeaaaadddd ---- mmmmuuuullllttttiiiitttthhhhrrrreeeeaaaaddddiiiinnnngggg SYNOPSIS DESCRIPTION FUNCTIONS new \&start_sub, new \&start_sub, LIST, lock VARIABLE, async BLOCK;, Thread->self, Thread->list, cond_wait VARIABLE, cond_signal VARIABLE, cond_broadcast VARIABLE METHODS join, eval, tid Page 99 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) LIMITATIONS SEE ALSO TTTThhhhrrrreeeeaaaadddd::::::::QQQQuuuueeeeuuuueeee ---- tttthhhhrrrreeeeaaaadddd----ssssaaaaffffeeee qqqquuuueeeeuuuueeeessss SYNOPSIS DESCRIPTION FUNCTIONS AND METHODS new, enqueue LIST, dequeue, dequeue_nb, pending SEE ALSO TTTThhhhrrrreeeeaaaadddd::::::::SSSSeeeemmmmaaaapppphhhhoooorrrreeee ---- tttthhhhrrrreeeeaaaadddd----ssssaaaaffffeeee sssseeeemmmmaaaapppphhhhoooorrrreeeessss SYNOPSIS DESCRIPTION FUNCTIONS AND METHODS new, new NUMBER, down, down NUMBER, up, up NUMBER TTTThhhhrrrreeeeaaaadddd::::::::SSSSiiiiggggnnnnaaaallll ---- SSSSttttaaaarrrrtttt aaaa tttthhhhrrrreeeeaaaadddd wwwwhhhhiiiicccchhhh rrrruuuunnnnssss ssssiiiiggggnnnnaaaallll hhhhaaaannnnddddlllleeeerrrrssss rrrreeeelllliiiiaaaabbbbllllyyyy SYNOPSIS DESCRIPTION BUGS TTTThhhhrrrreeeeaaaadddd::::::::SSSSppppeeeecccciiiiffffiiiicccc ---- tttthhhhrrrreeeeaaaadddd----ssssppppeeeecccciiiiffffiiiicccc kkkkeeeeyyyyssss SYNOPSIS TTTTiiiieeee::::::::AAAArrrrrrrraaaayyyy ---- bbbbaaaasssseeee ccccllllaaaassssssss ffffoooorrrr ttttiiiieeeedddd aaaarrrrrrrraaaayyyyssss SYNOPSIS DESCRIPTION TIEARRAY classname, LIST, STORE this, index, value, FETCH this, index, FETCHSIZE this, STORESIZE this, count, EXTEND this, count, CLEAR this, DESTROY this, PUSH this, LIST, POP this, SHIFT this, UNSHIFT this, LIST, SPLICE this, offset, length, LIST CAVEATS AUTHOR Page 100 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) TTTTiiiieeee::::::::HHHHaaaannnnddddlllleeee ---- bbbbaaaasssseeee ccccllllaaaassssssss ddddeeeeffffiiiinnnniiiittttiiiioooonnnnssss ffffoooorrrr ttttiiiieeeedddd hhhhaaaannnnddddlllleeeessss SYNOPSIS DESCRIPTION TIEHANDLE classname, LIST, WRITE this, scalar, length, offset, PRINT this, LIST, PRINTF this, format, LIST, READ this, scalar, length, offset, READLINE this, GETC this, DESTROY this MORE INFORMATION TTTTiiiieeee::::::::HHHHaaaasssshhhh,,,, TTTTiiiieeee::::::::SSSSttttddddHHHHaaaasssshhhh ---- bbbbaaaasssseeee ccccllllaaaassssssss ddddeeeeffffiiiinnnniiiittttiiiioooonnnnssss ffffoooorrrr ttttiiiieeeedddd hhhhaaaasssshhhheeeessss SYNOPSIS DESCRIPTION TIEHASH classname, LIST, STORE this, key, value, FETCH this, key, FIRSTKEY this, NEXTKEY this, lastkey, EXISTS this, key, DELETE this, key, CLEAR this CAVEATS MORE INFORMATION TTTTiiiieeee::::::::RRRReeeeffffHHHHaaaasssshhhh ---- uuuusssseeee rrrreeeeffffeeeerrrreeeennnncccceeeessss aaaassss hhhhaaaasssshhhh kkkkeeeeyyyyssss SYNOPSIS DESCRIPTION EXAMPLE AUTHOR VERSION SEE ALSO TTTTiiiieeee::::::::SSSSccccaaaallllaaaarrrr,,,, TTTTiiiieeee::::::::SSSSttttddddSSSSccccaaaallllaaaarrrr ---- bbbbaaaasssseeee ccccllllaaaassssssss ddddeeeeffffiiiinnnniiiittttiiiioooonnnnssss ffffoooorrrr ttttiiiieeeedddd ssssccccaaaallllaaaarrrrssss SYNOPSIS DESCRIPTION TIESCALAR classname, LIST, FETCH this, STORE this, value, DESTROY this MORE INFORMATION Page 101 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) TTTTiiiieeee::::::::SSSSuuuubbbbssssttttrrrrHHHHaaaasssshhhh ---- FFFFiiiixxxxeeeedddd----ttttaaaabbbblllleeee----ssssiiiizzzzeeee,,,, ffffiiiixxxxeeeedddd----kkkkeeeeyyyy----lllleeeennnnggggtttthhhh hhhhaaaasssshhhhiiiinnnngggg SYNOPSIS DESCRIPTION CAVEATS TTTTiiiimmmmeeee::::::::LLLLooooccccaaaallll ---- eeeeffffffffiiiicccciiiieeeennnnttttllllyyyy ccccoooommmmppppuuuutttteeee ttttiiiimmmmeeee ffffrrrroooommmm llllooooccccaaaallll aaaannnndddd GGGGMMMMTTTT ttttiiiimmmmeeee SYNOPSIS DESCRIPTION TTTTiiiimmmmeeee::::::::ggggmmmmttttiiiimmmmeeee ---- bbbbyyyy----nnnnaaaammmmeeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll''''ssss bbbbuuuuiiiilllltttt----iiiinnnn _g_m_t_i_m_e() function SYNOPSIS DESCRIPTION NOTE AUTHOR TTTTiiiimmmmeeee::::::::llllooooccccaaaallllttttiiiimmmmeeee ---- bbbbyyyy----nnnnaaaammmmeeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll''''ssss bbbbuuuuiiiilllltttt----iiiinnnn _l_o_c_a_l_t_i_m_e() function SYNOPSIS DESCRIPTION NOTE AUTHOR TTTTiiiimmmmeeee::::::::ttttmmmm ---- iiiinnnntttteeeerrrrnnnnaaaallll oooobbbbjjjjeeeecccctttt uuuusssseeeedddd bbbbyyyy TTTTiiiimmmmeeee::::::::ggggmmmmttttiiiimmmmeeee aaaannnndddd TTTTiiiimmmmeeee::::::::llllooooccccaaaallllttttiiiimmmmeeee SYNOPSIS DESCRIPTION AUTHOR UUUUNNNNIIIIVVVVEEEERRRRSSSSAAAALLLL ---- bbbbaaaasssseeee ccccllllaaaassssssss ffffoooorrrr AAAALLLLLLLL ccccllllaaaasssssssseeeessss ((((bbbblllleeeesssssssseeeedddd rrrreeeeffffeeeerrrreeeennnncccceeeessss)))) SYNOPSIS DESCRIPTION isa ( TYPE ), can ( METHOD ), VERSION ( [ REQUIRE ] ), Page 102 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) UNIVERSAL::isa ( VAL, TYPE ), UNIVERSAL::can ( VAL, METHOD ) UUUUsssseeeerrrr::::::::ggggrrrreeeennnntttt ---- bbbbyyyy----nnnnaaaammmmeeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll''''ssss bbbbuuuuiiiilllltttt----iiiinnnn ggggeeeettttggggrrrr****(((()))) ffffuuuunnnnccccttttiiiioooonnnnssss SYNOPSIS DESCRIPTION NOTE AUTHOR UUUUsssseeeerrrr::::::::ppppwwwweeeennnntttt ---- bbbbyyyy----nnnnaaaammmmeeee iiiinnnntttteeeerrrrffffaaaacccceeee ttttoooo PPPPeeeerrrrllll''''ssss bbbbuuuuiiiilllltttt----iiiinnnn ggggeeeettttppppwwww****(((()))) ffffuuuunnnnccccttttiiiioooonnnnssss SYNOPSIS DESCRIPTION NOTE AUTHOR AAAAUUUUXXXXIIIILLLLIIIIAAAARRRRYYYY DDDDOOOOCCCCUUUUMMMMEEEENNNNTTTTAAAATTTTIIIIOOOONNNN Here should be listed all the extra programs' documentation, but they don't all have manual pages yet: a2p s2p find2perl h2ph c2ph h2xs xsubpp pod2man wrapsuid AAAAUUUUTTTTHHHHOOOORRRR Larry Wall <_l_a_r_r_y@_w_a_l_l._o_r_g>, with the help of oodles of other folks. Page 103 (printed 10/23/98) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) 22225555////JJJJuuuullll////99998888 ((((ppppeeeerrrrllll 5555....000000005555,,,, ppppaaaattttcccchhhh 00002222)))) PPPPEEEERRRRLLLLTTTTOOOOCCCC((((1111)))) Page 104 (printed 10/23/98)